0

我有一个非常奇怪的问题.. 我的应用程序放在一个文件夹中,我保存所有项目。如果我从该位置打开应用程序(使用 Xcode 4.5),一切正常,应用程序工作正常,但如果我将应用程序的副本放在桌面上并尝试打开应用程序以在我的 iPhone 上进行测试,则错误是出来(NSInvalidArgumentException',原因:'无法使用 nil 模型创建 NSPersistentStoreCoordinator')

我已经尝试重置和清理一切都是可能的,但没有什么不工作?

这件事让我发疯?

有任何想法吗?

谢谢你的帮助..

4

3 回答 3

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;

}

于 2012-09-24T08:42:55.893 回答
0

它相对简单。

如果您有一个没有版本的 xcdatamodel 文件:在您的 managedObjectModel 声明中使用扩展名“mom”。如果你的 xcdatamodel 有版本,你应该使用“momd”。

于 2014-04-14T02:00:37.610 回答
0

我有同样的问题。发现在 AppDelegate.m 中,我已将模型 URL 链接到以前不再使用的模型名称,因此在尝试与数据模型交互时,它会抛出此错误。

希望对遇到同样问题的人有所帮助。

干杯

于 2013-10-11T02:49:21.347 回答