새로운 개발 시스템에 전무 모델을 가진 NSPersistentStoreCoordinator를 만들고, 내가 열 때, 구축하고 여전히 예전에 완벽하게 작동하는 (기존 핵심 데이터 프로젝트를 실행할 수 없습니다 machine)에서 "모델이없는 NSPersistentStoreCoordinator를 만들 수 없습니다."라는 오류 메시지가 나타납니다.난 그냥 엑스 코드를 사용하여 개발을위한 새로운 기계를 설정 한
이 오류와 관련된 stackoverflow에 대한 수많은 질문을 읽었으며 iOS가 데이터베이스 개체 모델을 처리하는 방법을 더 잘 이해하고 있으며 분명히 말할 것도 없습니다. 저주.
내 오래된 기계에 좋은 NSManagedObjectModel를 반환하는 ... 즉 내 관리 개체 모델에 대한
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"project" withExtension:@"momd"];
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
를 표준 초기화 방법을 사용하고 있지만, 전무 나의 새로운 하나.
컴파일 할 번들에는 project.mom 파일이 포함되어 있습니다. project.mom 파일에는 이전 컴퓨터의 컴파일 된 출력과 완전히 동일한 project.mom 파일이 포함되어 있습니다. 매우 좌절! 내가 생각할 수있는
있는 유일한 방법은 거기에 나는 새 시스템에 올바르게 설정하지 엑스 코드 내에서 구성 옵션이 있지만, 어떤 도움이나 조언이 매우 극명하게 될 것이다 것입니다!
*
내 새 컴퓨터에 번들 Project.momd의 내부 project.mom을 포함 * UPDATE. 내 오래된 컴퓨터에서 Project.mom은 Project.mom의 내부에 있습니다. 모델 이름이 대소 문자를 구별합니다. 그래서 xcode가 소문자로 엄마를 컴파일하는 이유를 알아야합니다 ...
수동으로 프로젝트 이름 바꾸기 .mom을 Project.mom에 번들 안에 넣으면 실제로 프로젝트가 다시 컴파일 될 때까지 임시적으로 문제가 해결됩니다.
이전 컴퓨터에서 모두 정리 (cmd + shift + option + k) 한 다음 다시 작성하면 앱이 계속 작동합니까? 그렇지 않은 경우 빌드의 "번들 리소스 복사"단계에서 모델이 복사되지 않을 수 있으며 이전 컴퓨터는 캐시 된 버전을 사용했을 수 있습니다. –
안녕하세요 라파엘, 답장을 보내 주셔서 감사합니다. 첫째로, 나는 현재 프로젝트의 두꺼운 부분에 있지만, 응용 프로그램은 다양한 장치로 잘 컴파일되고 실행되지만 현재 나의 오래된 컴퓨터의 현재 작동 상태를 위험에 빠뜨릴 수있는 일은하지 않습니다. project.xcdatamodeld 파일은 현재 빌드의 "Copy Bundle Resources"단계에 포함되어 있지 않지만 차이는 없습니다. 이 파일 만 포함시켜야합니까? 다시 한 번 감사드립니다, 해리 – Harry
나는 그것이 그 목록에 포함되어야한다고 잘못 생각합니다. 그러나, 그것은 당신이 구축하고자하는 목표의 능동적 인 멤버 여야합니다. 모델을 클릭하고 파일 관리자 (cmd + option + 1)를 열면 "대상 멤버쉽"섹션에 대상 옆에 체크 표시가 있습니까? –