2011-10-05 3 views
3

기괴한 문제로 갑자기 문제가 발생했습니다. 오히려 광범위한 CoreData 데이터 모델을 가지고 있고, 내가 작업하고있는 프로토 타입을위한 새로운 프로젝트로 그것을 복사했다. 나는 그것을 작동 시켰고, 새로운 엔티티와 속성을 혼합하고 매치했다.CoreData : 'NSInternalInconsistencyException', 이유 : '+ entityForName :이 모델에서'DocumentLocations '라는 엔티티를 찾을 수 없습니다.'

갑자기, 그리고 분명한 이유도없이 갑자기 다음과 같은 오류를 받고 있어요 :

'NSInternalInconsistencyException', reason: '+entityForName: could not locate an entity named 'DocumentLocations' in this model.'

나는 NSManagedObjectContext, NSPersistentStoreCoordinator 및 NSManagedObjectModel을 만드는 전체 과정에 파고, 그리고 지점에 입수했습니다 객체 모델이로드되지 않는 것이 확실합니다. 나는 다음과 같은 명령을 실행 :

_managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];

을하지만로드 한 후 모델의 엔티티 볼 때, 아무것도 없다 (당신이 mergedModelFromBundles에 nil을 전달하는 경우이 방법은 기본 번들에서 모델을 생성한다).

xcode 또는 시뮬레이터에서 내 xdatamodel 파일을 볼 수 없습니다. 그리고 나는 절대적으로 이유를 모른다. URL을 통해 명시 적으로로드하여이 문제를 강제로 시도 할 것이지만 어떻게 작동하는지 확신 할 수 없습니다.

실마리가 있습니까? CoreData 문제는 절대적으로 당황 할 수 있습니다. 나는 시간이 지남에 따라 그들 대부분을 통해 자신의 길을 일할 수 있었지만,이 사람은 머리를 쓰는 사람이다.

편집 : Alex가 알아 냈습니다. Xcode의 '컴파일 소스'목록에서 모델이 어떻게 제거되었는지 궁금합니다. 소원 Xcode 더 신뢰할 수 있었다. 정말로 PITA가 될 수 있습니다.

+2

xcdatamodel이 앱에 복사되고 있습니까? 단지 프로젝트에 추가하는 것만으로는 충분하지 않을 수 있으므로 빌드 설정이 포함되어 있는지 확인해야 할 수도 있습니다. 또한 파일 시스템에서 빌드 된 .app 번들을 추적하여 열어서 데이터 모델 파일이 포함되어 있는지 확인할 수 있습니다. – Alex

+0

와우. 그것은 훌륭했습니다. 내 유일한 질문은 : 어떻게 도대체 그것을 제거 했습니까 ??? 감사합니다. 어제 알아 냈 으면 좋겠어. 나에게 엄청난 시간을 절약 해 주었을 것인가? 이제 돌아가서/other/issues를 디버깅 할 수 있습니다! 다시 한 번 감사드립니다. –

+0

Datamodel 파일을 현재 빌드 대상 (오른쪽 세로 막대)에 추가하십시오. –

답변

3

@Alex가 알아 냈습니다. 어떤 이유로 xdatamodel이 빌드 설정에서 제거되었습니다. 나는 그것을 다시 추가했고 효과가 있었다. 나는 그것이 처음에 왜 제거되었는지 이해하지 못합니다. 말 그대로 하나의 빌드와 다음 빌드 사이에 사라졌습니다.

2

시뮬레이터와 내 iPhone에서 앱을 삭제하여이 문제를 해결했습니다.

분명히 DB는 엔티티없이 초기에 추가되었습니다. 그런 다음 엔티티를 추가하고 모든 것을 유선하면 위와 유사한 오류가 발생합니다. ...

앱을 삭제하면 DB를 다시 만들고 문제를 해결할 수 있습니다.

관련 문제