从NSManagedObject数组中提取属性

时间:2010-04-27 05:42:40

标签: iphone

NSFetchRequest *req = [NSFetchRequest init];

NSEntityDescription *descr = [NSEntityDescription entityForName:@"City" inManagedObjectContext:context];
[req setEntity:descr];

NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"streetName" ascending:YES];
[req setSortDescriptors:[NSArray arrayWithObject:sort]];
[sort release];

    //fetch
NSError *error;
NSArray *result = [context executeFetchRequest:req error:&error];

    //extract names
NSMutableArray *streets = [[NSMutableArray alloc] init];

for () {
        ??? = [array objectAtIndex:i];      
        [streets addObject:name];

    }

我预计Core Data会更加直观。我是新手,我可以使用一些帮助。 我从实体(表)City中获取了所有对象(行)。现在我有一个对象数组。从数组我需要将属性“streetName”提取到一个数组,该数组将提供选择器。我想我需要在循环中完成它,但我无法弄清楚如何做到这一点。 请帮忙。

我有SQL的背景,但核心数据对我来说仍然是个谜。是否有任何出版物会采用SQL语句并显示可比较的核心数据语法?

感谢。

2 个答案:

答案 0 :(得分:4)

由于键值编码,这非常简单:

NSArray *streets = [result valueForKey:@"streetName"];

答案 1 :(得分:0)

我认为核心数据发生了很大变化。这是我现在如何获取

NSError *error;
NSFetchRequest *fr =[NSFetchRequest fetchRequestWithEntityName:@"Category"];
[fr setPredicate:[NSPredicate predicateWithFormat:@"name == \"myCategpry\""]];
NSArray *rs = [self.managedObjectContext executeFetchRequest:fr error:&error];
for (NSManagedObject *index in rs) {
    NSLog(@"%@",[index primitiveValueForKey:@"name"]);
}
相关问题