客戶原本有上線的app,因為不滿意於是找我們重新開發了一個。
現在開發基本上完成了,客戶提了一個新要求要延續舊App中的coredata資料。
於是使用了與舊APP相同的Bundle ID與Bundle Name,拷貝了.xcdatamodeld檔到bundle請輸入代碼
,用了一樣的coredata代碼,但是在managedObjectModel中無法取得momd的url。看了一下bundle套件內容,老的app中
xcdatamodeld編譯成了一堆momd資料夾,資料夾裡有一堆mod檔。而新的app中xcdatamodeld沒有編譯,請問大神為什麼這個資料夾會不存在?
- (NSManagedObjectModel *)managedObjectModel{
if (_managedObjectModel != nil) {
return _managedObjectModel;
}
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"AirBoxModel" withExtension:@"momd"];
NSLog(@"modelURL is %@", modelURL);//显示nil
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"AirBoxModel.sqlite"];
NSLog(@"storeURL is %@",storeURL);
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return _managedObjectModel;
}
我現在也遇到了這樣子的問題,我是在用cocoapods導入了東西之後出現問題的。
在.app檔裡不生成.momd檔了,所以導致NSManagedObjectModel不能初始化,現在也沒什麼辦法,只能在build phases->compile sources 裡把xcdatamodeld導入進去了,本來系統生成的模型檔我還有用處的,但是找不到原因也只能這樣了
哈哈哈,編譯出來了,十分感謝