NSManagedObjectModel initWithContentsOfURL偶尔返回nil

时间:2013-02-22 02:39:40

标签: ios 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:方法已执行,但返回{{ 1}}。

有人能想到为什么nil可能会偶尔返回[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]

0 个答案:

没有答案
相关问题