2010-06-02 25 views
1

我想從「條目」中檢索單個值(字符串)。我相信我錯過了一些東西。有人能指出嗎?使用謂詞獲取數據。檢索單個值

XYZAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 

NSManagedObjectContext *managedObjectContext = appDelegate.managedObjectContext; 
NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@", entryToSearchFor]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Entry" inManagedObjectContext:managedObjectContext]; 
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:NO]; 
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 

[request setSortDescriptors:sortDescriptors]; 
[request setEntity: entity]; 
[request setPredicate: predicate]; 

NSArray *results = [managedObjectContext executeFetchRequest:request error:nil]; 

if (results == nil) { 
    NSLog(@"No results found");  
}else { 
    NSLog(@"entryToSearchFor %@", entryToSearchFor); 
    NSLog(@"results %@", [results objectAtIndex:0]); 

} 

順便說一下,所述的NSLog結果輸出以下:

results <NSManagedObject: 0x3d2d360> (entity: Entry; id: 0x3d13650 <x-coredata://6EA12ADA-8C0B-477F-801C-B44FE6E6C91C/Entry/p3> ; data: <fault>) 

回答

1

NSFetchRequest將返回與請求匹配NSManagedObjects的陣列。這與你所看到的一致。假設你想獲取名字,你可以做NSLog(@"the name is %@", [[results objectAtIndex:0] name]);打印出名字。

+0

這很有道理。非常感謝你的幫助。 – 2010-06-02 18:58:08