2011-05-13 6 views
0

코코아 애플리케이션에서 핵심 데이터 프레임 워크를 사용하고 있는데 NSEntityDescription을 사용하여 몇 개의 엔티티를 만들고 참조를 만들었습니다. 내가 응용 프로그램을 실행할 때 "영구 저장소를 여는 데 사용 된 관리 대상 개체 모델 버전이 영구 저장소를 만드는 데 사용 된 버전과 호환되지 않습니다."라는 오류 메시지가 나타납니다.핵심 데이터 작업 문제

답변

2

장치/시뮬레이터에서 응용 프로그램을 삭제 한 다음 다시 빌드하고 실행해야합니다.

이전 데이터 저장소는 액세스하는 클래스가 변경되는 동안 앱 문서 폴더에 남아 있기 때문에 모델을 변경할 때마다 이러한 오류가 발생합니다.

개발의 후반 단계에서는 새로운 버전이 출시 될 때마다 상점 마이그레이션을 도입하고 테스터와 사용자가 데이터를 삭제하지 않아도됩니다. 모델이 여전히 정적 인 경우 향후 업데이트 중에 데이터를 마이그레이션 할 필요가 없습니다.

자세한 내용은 Core Data Migration Programming Guide을 참조하십시오.

0

당신이 중 하나에서 영구 저장소 파일을 삭제해야합니다. (엑스 코드의 버전에 따라)

  • ~/Library/$AppName
  • ~/Library/Application Support/$AppName
0

을 대답은 조금 까다 롭습니다 그러나 이것은 항상 나를 위해 작동합니다. 새로운 호환 .sqlite 파일 이 설치되어 있지 않습니다.!

실행 시뮬레이터에서 앱과 데이터 (앱 삭제 후 팝업)를 삭제하십시오.

시뮬레이터

을 종료

X-코드, 데이터 모델에 어떤 편집을 한 후

{*appname*}.sqlite 파일을 삭제 (또는 참조를, 그것을 백업 프로젝트 폴더에서 제거 및 삭제)

공개 (이 튜토리얼 내가 4.2을 가정한다)

시뮬레이터에서 응용 프로그램을 실행 응용 프로그램 ( Product > Clean)

를 청소

- 코드를 X {*home*} > Library > Application Support > iPhone Simulator > 4.2 > Applications > {*random identifier*} > Documents > {*appname*}.sqlite

복사이 파일을 다른 위치

정지에서 응용 프로그램을 실행하는

드래그하고 {드롭 : 시뮬레이터가 실행되는 동안

, Finder 윈도우에서,에 이동 appname} .sqlite 파일을 X-Code의 파일 목록에 추가하십시오.

팝업 대화 상자에서 copy to folder 확인란이 선택되어 있는지 확인하십시오.

Product > Clean

그런 다음

지금 당신이 작업 sqlite가 파일을 가지고 있어야 다시 시뮬레이터에서 응용 프로그램을 실행!

건배, 로버트

관련 문제