Pragmatic ball boy

iOSを中心にやってる万年球拾いの老害エンジニアメモ

could not locate an NSManagedObjectModel for entity name

"could not locate an NSManagedObjectModel for entity name" というエラーがCoreDataで出た場合の対処方法。

以下のようなコードで、色のついたコードの箇所で止まってしまう場合です。
entity nameはあっているはずなのに・・・と悩んだわけですが、
self.managedObjectContextにちゃんとセットしていないとこのようなエラーがでてしまいます。(エラーの内容が紛らわしい・・)


- (NSFetchedResultsController *)fetchedResultsController
{
    if (__fetchedResultsController != nil) {
        return __fetchedResultsController;
    }
    
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    // Edit the entity name as appropriate.
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Spending" inManagedObjectContext:self.managedObjectContext];
    [fetchRequest setEntity:entity];