從設備刪除我的應用程序後收到'Cannot create an NSPersistentStoreCoordinator with a nil model'
錯誤。我正在iPad設備上測試iPhone應用程序。我已經把這個代碼來檢查,如果我有文件AppDelegate.m
:從設備上刪除應用程序後無法創建NIL模型的NSPersistentStoreCoordinator
- (NSManagedObjectModel *)managedObjectModel {
if (__managedObjectModel != nil) {
return __managedObjectModel;
}
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Name" withExtension:@"momd"];
if ([[NSFileManager defaultManager] fileExistsAtPath:[modelURL path]]) {
NSLog(@"%@", [modelURL path]); //This is printed because file exists
}
__managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return __managedObjectModel;
}
的問題是,[NSManagedObjectModel initWithContentsOfURL]
將返回空值。 我已經做了下面的事情,但沒有成功:
- 變化managedObjectModel實例與此
__managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil];
- 清理build文件夾和清理項目
- 重啓動的Xcode
- 計算機重新啓動後
- 更改「momd 「to」mom「
.xcdatamodeld
is in Copy Bundle Resources and Compile Sources- 改名
.xcdatamodeld
和清理和關閉的Xcode項目多次 - 關閉,在設備上
- 已刪除文件夾從:
$ cd /Users/john/Library/Developer/Xcode/DerivedData
- 改變sqlite的名字從迪瓦恩 強制數據庫生成
- 刪除(再次)申請
我一直在尋找解決方案的小時,我仍然無法找到它。
是否在模擬器上工作?你能夠在Xcode中打開'.xcdatamodeld'文件嗎? – FluffulousChimp
Alan,我可以在Xcode中打開'.xcdatamodeld'文件,但該應用程序在模擬器中不工作。它啓動,但只顯示黑屏。 – amb
我想我已經找到了一些東西......我剛剛意識到我並沒有刪除所有生活在'/ Users/john/Library/Developer/Xcode/DerivedData'中的文件,所以當我這樣做時,模擬器就OK了,即使是managedObjectModel。 有什麼方法可以刪除設備中的這些文件? – amb