ManagedObjectModel为零

时间:2012-01-29 02:59:02

标签: iphone objective-c ios core-data

使用CoreData创建一个新的iPhone应用程序。我的应用程序构建时没有任何警告或错误,并且我的.xcdatamodeld也没有错误或警告。

出于某种原因,我的managedObjectModel不会初始化,我无法解决原因。

- (NSManagedObjectModel *)managedObjectModel {
 if (__managedObjectModel) {
     return __managedObjectModel;
}

 NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"BAK" withExtension:@"momd"];
 __managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];    
 return __managedObjectModel;
}

modelURL正确解析并指向我编译的数据模型,但managedObjectModel在其alloc行之后保持为nil。控制台也没有输出。什么可能导致这个或我错过了什么?

__managedObjectModel声明如下:

.h
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
.m
@synthesize managedObjectModel = __managedObjectModel;

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我的赌注是你以某种方式改变了模型,很可能是名字(“BAK”到其他东西或其他东西到“BAK”)。

NSManagedObjectModel的初始化非常简单。如果它已初始化并存在,则返回它,否则使用您提供的名称(“BAK”)初始化ManagedObjectModel。

唯一的另一种解释是,不知何故,某些方面,Core Data模型没有在主bundle位置初始化,而是在其他地方初始化。