我在我的应用中设置了Core Data,需要获取一堆项目,然后访问我选择的那些获取项目的属性。我能够成功获取一堆结果:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"TableInfo" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSError *error = nil;
NSArray *result = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
这给了我一个包含我的结果的数组,很棒。现在,我可以从这些结果中获取'name'属性吗?在这种特定情况下,我想加载一个包含所有获取结果'name'字符串的数组。
希望你能提供帮助,谢谢。
答案 0 :(得分:1)
您可以使用键值:
for (NSManagedObject *fetchedResult in result) {
NSLog(@"name = %@", [fetchedResult valueForKey:@"name"]);
}
或者如果您创建了自定义NSManagedObject:
for (EntityObject *fetchedResult in result) {
NSLog(@"name = %@", [fetchedResult name]);
}
答案 1 :(得分:1)
如果我正确地阅读了您的问题,您可以毫不费力地抓取NSManagedObjects
,但是希望在这些托管对象上获得另外NSArray
个name
属性?
然后,您可以使用valueForKeyPath
上的NSArray
(扩展原始代码):
NSArray *names = [result valueForKeyPath:@"name"];