1

我試圖檢索使用核心數據保存的對象的列表。在創建項目時,對Xcode所做的默認設置沒有任何更改。有實際數據存儲項目,並保存但運行下面的代碼時,當Transaction正常工作的實體:嘗試創建entity對象時,我收到以下錯誤使用核心數據獲取產生'無法識別的選擇器錯誤'?

NSManagedObjectContext * context = [[NSApp delegate] managedObjectModel]; 
    NSFetchRequest * fetchRequest = [[NSFetchRequest alloc] init]; 
    NSEntityDescription * entity = [NSEntityDescription 
            entityForName:@"Transaction" 
            inManagedObjectContext:context]; 
    [fetchRequest setEntity:entity]; 
    NSError * error = nil; 
    NSArray * transactionList = [context executeFetchRequest:fetchRequest error:&error]; 
    if (&error != nil) { 
     [Utility showMessage:error.description asError:YES]; 
    } else { 
     [Utility showMessage:[NSString stringWithFormat: @"Items: %@", transactionList.count] asError:NO]; 
    }  

[NSManagedObjectModel persistentStoreCoordinator]:無法識別的選擇發送到實例

我缺少什麼,或者我該怎麼辦檢查是什麼原因造成的錯誤?

腳註
- Utility是一個靜態類簡單地生成NSAlert框。
- 我一直在使用this教程,試圖理解代碼是如何工作的

回答

2

在第一行你從你的應用程序代理獲取的managedObjectModel並將其分配給一個NSManagedObjectContext。您應該改爲撥打managedObjectContext

+0

現在我感到有點尷尬,但非常感謝。我雖然是一個新手的錯誤! – BinaryMisfit

2

從您的代碼中,您不清楚究竟是什麼分配給託管對象上下文。它應該是一個託管對象上下文,而不是一個託管對象模型。

此外,你應該檢查是否(error!=nil)不是&error。閱讀你的C指針語法(;-)。

+0

謝謝你指出另一個新手的錯誤。 – BinaryMisfit

相關問題