在 NSArray 中获取 NSFetchRequest 的所有结果

Posted

技术标签:

【中文标题】在 NSArray 中获取 NSFetchRequest 的所有结果【英文标题】:Get all results of a NSFetchRequest in an NSArray 【发布时间】:2014-05-16 15:29:37 【问题描述】:

在我的应用中,我这样做是为了从实体中获取所有特定价值

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];

int 这样我获得了NSDictionaryies 的NSArray,但我直接想要一个值数组。 什么是没有循环的快速获取它的方法?

【问题讨论】:

一个包含什么值的数组? id_str 属性的各个值? @TomHarrington 我猜 OP 会检索 id_str 值的数组..但也许我错了 【参考方案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总是检查可能的错误(为简单起见,我不在此代码 sn-p 中使用它) 我会将id_str 重命名为idStructure

【讨论】:

以上是关于在 NSArray 中获取 NSFetchRequest 的所有结果的主要内容,如果未能解决你的问题,请参考以下文章

从 NSDictionary 对象的 NSArray 中,如何获取唯一的 NSArray

如何在 NSString 中获取 NSArray 对象并一一发送该对象?

如何在滚动视图中显示从 Web 获取的 NSArray 数据并在 Objective C 中扩展+更新它?

从 NSArray 获取 JSON 数据

获取并本地过滤 NSArray 或多次执行 fetchRequest

如何使用 for 循环在 NSString 中获取多个 NSArray 对象并一一发送该对象?