从核心数据获取请求中获取字符串(或其他变量)?

时间:2012-03-25 01:26:54

标签: iphone objective-c core-data nsfetchrequest

我在我的应用中设置了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'字符串的数组。

希望你能提供帮助,谢谢。

2 个答案:

答案 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,但是希望在这些托管对象上获得另外NSArrayname属性?

然后,您可以使用valueForKeyPath上的NSArray(扩展原始代码):

NSArray *names = [result valueForKeyPath:@"name"];