我有一个非常奇怪的问题..我的应用程序位于一个文件夹中,我保留了所有项目。如果我从该位置打开应用程序(使用Xcode 4.5)一切正常,应用程序正常工作,但如果我在桌面上放置应用程序的副本并尝试打开应用程序在我的iPhone上进行测试,则错误是出来(NSInvalidArgumentException',原因:'无法使用nil模型创建NSPersistentStoreCoordinator')
我已经尝试重置并清理一切可能但没有什么不起作用?
这件事让我抓狂?
有什么想法吗?
感谢您的帮助..
答案 0 :(得分:2)
在代码行stringByAppendingPathComponent中更改数据库的名称。将值从dummy.sqlite更改为anyOther.sqlite。这是重新创建数据库的正确解决方案。
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (persistentStoreCoordinator != nil) {
return persistentStoreCoordinator;
}
NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory]
stringByAppendingPathComponent: @"dummy.sqlite"]];
NSError *error = nil;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc]
initWithManagedObjectModel:[self managedObjectModel]];
if(![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil URL:storeUrl options:nil error:&error]) {
/*Error for store creation should be handled in here*/
}
return persistentStoreCoordinator;
}
答案 1 :(得分:0)
我有同样的问题。发现在AppDelegate.m中,我将模型URL链接到以前不再使用的模型名称,因此在尝试与数据模型交互时,它会抛出此错误。
希望能帮助任何有同样问题的人。
干杯
答案 2 :(得分:0)
它相对简单。
如果你有一个xcdatamodel文件没有版本:在你的managedObjectModel声明中使用扩展名“mom”。 如果你的xcdatamodel有版本,你应该使用“momd”。