プロファイル画面の場合、最初にテーブルをロードすることなく、Core Data から詳細ページに相当するものをロードしたいと考えています。コア データに複数のユーザーのエンティティ/テーブルがあります。しかし、私が関心があるのは、そのうちの 1 つである現在のユーザーのプロファイル データを取得することだけです。テーブルをロードして選択を選択し、パスとインデックス行などを使用するプロセスを経ずに、それを直接ロードしたいと思います。結果を取得したら、それらを行として表示するのではなく、異なるフィールドを分散させたくありません詳細ページで行うように、さまざまな要素でページを囲みます。
誰でもこれを行うための最良の方法を提案できますか?
問題のユーザーをユーザーIDまたはユーザー名でソートする述語を使用する必要があると思います。通常は NSFetchedResultsController を使用してフェッチを実行しますが、executefetchrequest を使用してより簡単なフェッチを行う方法があるかもしれません。次のコードは、SO で見つけたものを基にしています。それは正しいアプローチですか?
- (User *)userInfo:(NSDictionary *)usersList
inManagedObjectContext:(NSManagedObjectContext *)context
{
User *user = nil;
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Users"];
request.predicate = [NSPredicate predicateWithFormat:@"username = bob"];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"last" ascending:YES];
request.sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSError *error = nil;
NSArray *matches = [context executeFetchRequest:request error:&error];
if (!matches || ([matches count] > 1)) {
// handle error
} else {
user = [matches lastObject];
}
return user;
}