2012-02-07 127 views
1

我正在學習基於iOS4的書中的CoreData,因此,實現本書中的代碼示例,我將代碼遷移到iOS5(包含故事板和ARC)。 我還實施了iOS4的代碼,它完美的作品,但在iOS5的版本,我得到一個EXC_BAD_ACCESS,當我從模型對象的名稱得到NSEntityDescriptionEXC_BAD_ACCESS在NSEntityDescription中創建核心數據

AppDelegate *appDelegate =[[UIApplication sharedApplication] delegate]; 
NSManagedObjectContext *context = [appDelegate managedObjectContext]; 

NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Customer" inManagedObjectContext:context]; 

信號中的最後一行出現碼。我知道委託應該將上下文傳遞給viewcontroller,但是通過這段代碼,我確信上下文不是問題。

任何想法?爲什麼我可以在這裏獲得EXC_BAD_ACCESS?我能確定這條線是正確的嗎?

回答

2

這似乎意味着你的實體字符串可能是錯的?爲了避免崩潰,你可以使用類似於:

NSEntityDescription *entity = [[managedObjectModel entitiesByName] 
    objectForKey:@"Customer"]; 
+0

正如我所說,我正在學習Core Data,所以我不知道這種方法。使用entitiesByName方法你說我已經意識到模型中沒有實體。所以問題是我改變了.xcdatamodeld文件的名字。雖然我也在委託中對它進行了更改,但似乎如果要更改模型文件名(並且希望應用程序可以工作XD),則必須使用此新名稱創建新模型文件,如下所述: http://stackoverflow.com/questions/5621178/rename-xcdatamodel-file 現在問題終於解決了!非常感謝你@Mundi – angeleke 2012-02-07 15:50:09

+0

謝謝@Eimantas糾正。 – angeleke 2012-02-07 15:53:33

相關問題