2012-03-25 67 views
0

我的應用程序中有核心數據設置,需要獲取一堆項目,然後訪問我選擇的那些獲取項目的屬性。我能夠成功地獲取一堆這樣的結果:從CoreData獲取請求中獲取字符串(或其他變量)?

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'字符串的數組。

希望你能幫忙,謝謝。

回答

1

如果我正確地讀你的問題,你可以毫不費力地獲取您的NSManagedObjects ,但想要在這些託管對象上派生另一個NSArrayname屬性?

然後你就可以在NSArray使用valueForKeyPath(延長你的原碼):

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

好哇!謝謝,不能再簡單了。 – 2012-03-25 11:40:09

1

您可以使用鍵值:

for (NSManagedObject *fetchedResult in result) { 
    NSLog(@"name = %@", [fetchedResult valueForKey:@"name"]); 
} 

,或者如果您創建自定義的NSManagedObject:

for (EntityObject *fetchedResult in result) { 
    NSLog(@"name = %@", [fetchedResult name]); 
}