objective-c - IOS開發了一個新應用,使用相同Bundle ID取代了舊應用,想延用舊的coredata數據,無法找到momd
为情所困
为情所困 2017-05-02 09:37:47
0
2
732

客戶原本有上線的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;
}
为情所困
为情所困

全部回覆(2)
Ty80

我現在也遇到了這樣子的問題,我是在用cocoapods導入了東西之後出現問題的。
在.app檔裡不生成.momd檔了,所以導致NSManagedObjectModel不能初始化,現在也沒什麼辦法,只能在build phases->compile sources 裡把xcdatamodeld導入進去了,本來系統生成的模型檔我還有用處的,但是找不到原因也只能這樣了

phpcn_u1582

哈哈哈,編譯出來了,十分感謝

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板