我對Objective C比較陌生。到目前爲止,所有事情都進行得非常順利,直到我點擊CoreData。我無法讓它工作!花了好幾個小時看起來很直截了當的事情之後,我的智慧就這樣結束了。CoreDef與AppDelegate問題
請幫我找出我做錯了:
- 我創建了一個新的基於Windows的應用程序,並檢查「使用的核心數據存儲」
- 在xcdatamodel,我創建了一個名爲實體'RecipeData'只有一個屬性'recipeName',它是一個字符串
- 在應用程序委託中,我加載了一個XML文件並解析它。當我解析食譜名稱時,我使用以下內容:
recipeData *dataName = (recipeData *) [NSEntityDescription insertNewObjectForEntityForName:@"RecipeData" inManagedObjectContext:managedObjectContext]
;
我得到以下錯誤:
terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name 'RecipeData'
這使我大3個問題:
- 有什麼真的很明顯,我做錯了什麼?
,因爲我檢查「使用的核心數據進行存儲,」看來下面的代碼會自動注入到應用程序委託.H:
@private 的NSManagedObjectContext * managedObjectContext_;
NSManagedObjectModel *managedObjectModel_; NSPersistentStoreCoordinator *persistentStoreCoordinator_;
@property(nonatomic,retain,readonly)NSManagedObjectContext * managedObjectContext;
這會干擾我使用的代碼嗎?
- 我試着創建一個名爲* myManagedObjectContext的新的NSManagedObjectContext,但沒有奏效。
一個其它珍聞,當我添加以下的正上方我的代碼:
如果(managedObjectContext ==無){
的NSLog(@ 「否CONTEXT」);
}
控制檯打印 「沒有上下文」
我真的很感激任何幫助。謝謝。
我會建議使用由模板提供的默認情況下加載的方法。刪除您的自定義managedObjectContext變量和屬性,並改爲使用self.managedObjectContext。 – ughoavgfhw 2011-01-11 22:17:38
謝謝!這解決了它,我改變了代碼:recipeData * dataName =(recipeData *)[NSEntityDescription insertNewObjectForEntityForName:@「recipeData」inManagedObjectContext:self.managedObjectContext]; – 2011-01-11 22:20:44