6

我正在使用 Core Data 并且在一个实时应用程序中遇到一些情况,我收到一些带有以下错误的崩溃报告:

Cannot create an NSPersistentStoreCoordinator with a nil model 

我发现这偶尔会在模拟器(以及设备)中发生,但在任何一个上都不会一直发生,而且我还没有找到导致它有时而不是其他时间发生的相关性。

在做了一些调试之后,我发现根本原因(从代码的角度来看)是 managedObjectModel 创建方法偶尔返回 nil。这是我在 AppDelegate 中的实现:

- (NSManagedObjectModel *)managedObjectModel {
    if (__managedObjectModel != nil) {
        return __managedObjectModel;
    }
    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"AppName" withExtension:@"momd"];
    __managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
    return __managedObjectModel;
}

时不时地,我很幸运能够在崩溃发生时运行调试器,并且我已经确认正在调用上述方法,并且该initWithContentsOfURL:方法已执行,但返回nil.

谁能想到为什么[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]偶尔会回来nil

4

0 回答 0