2012-11-19 65 views
0

我正在學習將現有數據庫預加載到核心數據的教程。代碼編譯細直到我到這一行:將數據預加載到核心數據中

NSEntityDescription *entity = [NSEntityDescription insertNewObjectForEntityForName:@"FailedBankInfo" inManagedObjectContext:context]; 

在那裏返回以下錯誤:2012年11月19日12:45:02.247 CoreDatTutorial2 [2049:403] - [FailedBankInfo subentitiesByName]:無法識別的選擇發送例如0x100301010'

我檢查過以確保它不是空的,並且它已被保存到產品目錄中。任何想法我做錯了什麼?如果我註釋掉那行代碼,項目編譯沒有問題。

這裏的其餘代碼:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity = [NSEntityDescription insertNewObjectForEntityForName:@"FailedBankInfo" inManagedObjectContext:context]; 
    [fetchRequest setEntity:entity]; 
    NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error]; 
    for (FailedBankInfo *info in fetchedObjects){ 
    { 

回答

2
insertNewObjectForEntityForName:inManagedObjectContext: 

創建一個新管理對象並將其插入到被管理對象上下文。特別是,它返回類FailedBankInfo(在你的情況),而不是NSEntityDescription的對象。

要創建NSEntityDescription,使用entityForName:inManagedObjectContext:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"FailedBankInfo" 
           inManagedObjectContext:context]; 
[fetchRequest setEntity:entity]; 

注意(開始與iOS 5.0)可以簡化這

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"FailedBankInfo"];