2012-10-16 59 views
0

我對Core Data很新,實際上Objective-C是一個整體,所以我希望我正確地表述了這一點,我已經能夠使用Core Data存儲和檢索數據,但我掙扎着通過結果集循環,通過NSFetchRequest循環結果

// read the data 
NSFetchRequest *req = [[NSFetchRequest alloc]init]; 
[req setEntity:[NSEntityDescription entityForName:@"Card" inManagedObjectContext:app.managedObjectContext]]; 
//[req setPredicate:[NSPredicate predicateWithFormat:@"cardID == %@", @"1"]]; 
NSArray *crd = [[app.managedObjectContext executeFetchRequest:req error:nil] lastObject]; 

for(Card *card in crd){ 
    NSLog(@"%@",card.backImageURL); 
} 

我不斷收到這個錯誤,雖然當我嘗試運行應用程序,

2012-10-16 11:37:29.407 Core test[925:17903] -[Card countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x962f5c0 
2012-10-16 11:37:29.408 Core test[925:17903] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Card countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x962f5c0' 

我相信這是一些非常簡單的,但由於某種原因,我可以」似乎查明問題。

回答

1

而不是

NSArray *crd = [[app.managedObjectContext executeFetchRequest:req error:nil] lastObject]; 

應該

NSArray *crd = [app.managedObjectContext executeFetchRequest:req error:nil]; 

如果您收到錯誤,那麼你應該使用錯誤的參數 -

NSError *error = nil; 
NSArray *crd = [app.managedObjectContext executeFetchRequest:req error:&error]; 
if(error){ 
    NSLog(@"ERROR: %@", [error localizedDescription]); 
} 
+0

哇哦......我沒甚至不會注意到'lastObject'! -_-謝謝你,那就是訣竅! – Odyss3us