1

我正在尝试检索使用 Core Data 保存的对象列表。创建项目时 Xcode 所做的默认设置没有任何更改。实际数据存储中有项目,实体Transaction在保存时工作正常,但在运行以下代码时:

    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];
    }    

尝试创建entity对象时收到以下错误。

[NSManagedObjectModel persistentStoreCoordinator]:发送到实例的无法识别的选择器

我错过了什么,或者我该怎么做才能检查导致错误的原因?

脚注
-Utility是一个静态类,它只生成一个NSAlert框。
- 我一直在使用教程来尝试了解代码的工作原理

4

2 回答 2

2

在第一行中,您managedObjectModel从应用程序委托中获取 并将其分配给NSManagedObjectContext. 你应该managedObjectContext取而代之。

于 2011-10-21T18:30:42.960 回答
2

从您的代码中,尚不清楚您分配给托管对象上下文的确切内容。它应该是托管对象上下文,而不是托管对象模型。

另外,您应该检查是否(error!=nil)没有&error。阅读您的 C 指针语法 (;-)。

于 2011-10-21T18:31:02.433 回答