2010-01-03 98 views
0

Possible Duplicate:
insertNewObjectForEntityForName:iPhone:核心數據錯誤:+ entityForName:未能找到NSManagedObjectModel的實體名稱 '名稱'

見標題^

代碼導致此:

NSManagedObjectContext *context = [fetchedResultsController managedObjectContext]; 

    Name *name = (Name *)[NSEntityDescription insertNewObjectForEntityForName:@"Name" inManagedObjectContext:context]; 

    Feature *feature = (Features *)[NSEntityDescription insertNewObjectForEntityForName:@"thing" inManagedObjectContext:context]; 
    [feature setName:app]; 
    [name addFeaturesObject:feature]; 

應用程序是一個NSString早先定義。

事情我已經嘗試:

在viewDidLoad中:

if (managedObjectContext == nil) 
{ 
    managedObjectContext = [(IsidoreAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext]; 
} 

回答

2

你的管理對象上下文可能沒有設置與實體「名」顯然是無效的零上下文。

在viewDidLoad中,您通過使用應用程序委託來設置視圖控制器的「managedObjectContext」實例變量,這很好,但您的問題代碼正在使用獲取的結果控制器中的託管對象上下文。那已經安裝好了嗎?

此外,檢查出this answerCore Data and UITabBar Controller - help?!

+0

它就在那裏...... – 2010-01-03 16:52:27

0

我碰到同樣的問題。我在xCode4中創建了一個單獨的項目,使用「基於導航的應用程序」和「使用核心數據」選項。然後我將持久數據複製到我的其他應用程序上。這是我遇到這個問題的時候。我已經定義了實體的所有字段一起,然後有+ entityForName:未能找到NSManagedObjectModel爲實體名稱「名稱」錯誤

的好處是它比較容易解決: 如果您正在沿着和我一樣的路線工作,在您實例化控制器的位置將此線添加到您的應用代理:

yourViewController.managedObjectContext = self.managedObjectContext; 
相關問題