加载我的managedObjectModel时出错

时间:2010-04-30 19:42:54

标签: iphone cocoa-touch core-data

当我调用[myAppDelegate managedObjectModel]时,在下面的保留行中,我的应用程序将崩溃(iPhone SDK v3.1.3):

- (NSManagedObjectModel *)managedObjectModel {

    if (managedObjectModel != nil) {
        return managedObjectModel;
    }
    managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];    
    return managedObjectModel;
}

这是我的崩溃痕迹

#0  0x905c44e6 in objc_exception_throw
#1  0x01e78c3b in +[NSException raise:format:arguments:]
#2  0x01e78b9a in +[NSException raise:format:]
#3  0x000af99b in _NSArrayRaiseInsertNilException
#4  0x0001c360 in -[NSCFArray insertObject:atIndex:]
#5  0x0001c274 in -[NSCFArray addObject:]
#6  0x01c16a7e in +[NSManagedObjectModel mergedModelFromBundles:]
#7  0x00002432 in -[myAppDelegate managedObjectModel] at myAppDelegate.m:102

这里发生了什么?这是我以前从未见过的模板代码。

干杯

的Nik

2 个答案:

答案 0 :(得分:3)

崩溃的文字是什么?您可能有重复的实体,或者根本找不到模型。

更新

要明确的是,单个文件的扩展名应为.xcdatamodel.xcdatamodeld适用于版本化捆绑包。

答案 1 :(得分:0)

这就是我的默认实现:

- (NSManagedObjectContext *) managedObjectContext {

if (managedObjectContext != nil) {
    return managedObjectContext;
}

NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
    managedObjectContext = [[NSManagedObjectContext alloc] init];
    [managedObjectContext setPersistentStoreCoordinator: coordinator];
}
return managedObjectContext; 

}