首頁  >  問答  >  主體

objective-c - IOS開發了一個新應用,使用相同Bundle ID取代了舊應用,想延用舊的coredata數據,無法找到momd

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

全部回覆(2)我來回復

  • PHP中文网

    PHP中文网2017-05-02 09:39:47

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

    回覆
    0
  • phpcn_u1582

    phpcn_u15822017-05-02 09:39:47

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

    回覆
    0
  • 取消回覆