objective-c - IOS开发了一个新应用,使用相同Bundle ID替换了旧应用,想延用旧的coredata数据,无法找到momd
为情所困
为情所困 2017-05-02 09:37:47
0
2
675

客户原本有一个上线的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를 사용하여 무언가를 가져온 후에 문제가 발생했습니다.
.momd 파일은 더 이상 .app 파일에서 생성되지 않으므로 NSManagedObjectModel을 초기화할 수 없습니다. 지금은 빌드 단계에서 xcdatamodeld만 가져올 수 있습니다. 원래는 모델 파일을 생성했습니다. 여전히 그 용도가 있지만 이유를 찾을 수 없으면 이렇게 해야 합니다

phpcn_u1582

하하하 정리가 되었네요, 정말 감사합니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!