对于配置文件屏幕,我想从 Core Data 加载等效的详细信息页面,而不必先加载表。我在核心数据中有一个包含多个用户的实体/表。但我只对提取其中一个用户(当前用户)的个人资料数据感兴趣。我想直接加载它,而不需要通过加载表和选择选择以及使用路径和索引行等的过程。一旦我得到结果,我不想将它们显示为一行,而是分配不同的字段就像在详细信息页面中一样,在不同元素中围绕页面。
谁能建议最好的方法来做到这一点?
我想我需要使用一个谓词,用用户 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;
}