当我调用[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
答案 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;
}