2010-04-27 86 views
2
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”提取到一个数组,该数组将提供给选取器。我想我需要在循环中做到这一点,但我无法想出办法。 请帮忙。从NSManagedObject数组提取属性

我有一个SQL背景,但核心数据对我来说仍然是一个很大的谜团。是否有任何需要SQL语句并显示可比较的Core Data语法的发布?

谢谢。

回答

4

这是非常简单的,因为键 - 值编码的:

NSArray *streets = [result valueForKey:@"streetName"]; 
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"]); 
}