在NSArray中获取NSFetchRequest的所有结果

时间:2014-05-16 15:29:37

标签: ios objective-c core-data nsfetchrequest nsentitydescription

在我的应用程序中,我这样做可以从实体中获取所有特定值

NSManagedObjectContext *context = [[self sharedAppDelegate] managedObjectContext];
NSError *error = nil;
NSFetchRequest *req = [NSFetchRequest fetchRequestWithEntityName:@"Structure"];
[req setPropertiesToFetch:@[@"id_str"]];
[req setResultType:NSDictionaryResultType];

NSArray *id_str_BD = [context executeFetchRequest:req error:&error];

以这种方式我得到NSArray NSDictionary但我想直接得到一组值。 在没有循环的情况下获得它的快速方法是什么?

1 个答案:

答案 0 :(得分:1)

我同意汤姆的观点。什么价值观?

无论如何,你可以通过KVC完成它。例如,

NSFetchRequest* fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Structure"];
[fetchRequest setPropertiesToFetch:@[@"id_str"]];

NSArray* results = [[self managedObjectContext] executeFetchRequest:fetchRequest error:nil];
NSArray* ids = [results valueForKey:@"id_str"];

NSLog(@"%@", ids);

备注

  • 不要传递nil错误。 总是检查可能的错误(为了简单起见,我不在此代码段中使用它)
  • 我会将id_str重命名为idStructure