Xcode3에는 전혀 문제가 없었지만 핵심적인 데이터 모델을 업데이트 할 때 "영구 저장소 마이그레이션에 실패했습니다. 소스 관리 개체 모델이 누락되었습니다."라는 Xcode4와 함께 Apple 코드가 3 번에 약 1 번 실패합니다. 오류. Xcode4의 모델을 손상시키지 않고 올바르게 업데이트하려면 어떻게해야합니까?
- NSPersistentDocument, 내가 할 수있는 유일한 방법은을 제공하는 것입니다 : 여기 (나는 자동 마이그레이션 프로젝트를 구성하는 방법) 내 설정이다 자동 마이그레이션 여기
-(BOOL)configurePersistentStoreCoordinatorForURL:(NSURL *)url ofType:(NSString *)fileType modelConfiguration:(NSString *)configuration storeOptions:(NSDictionary *)storeOptions error:(NSError **)error
{
NSMutableDictionary *newOptions = nil;
if(storeOptions != nil)
newOptions = [NSMutableDictionary dictionaryWithDictionary:storeOptions];
else
newOptions = [NSMutableDictionary dictionary];
[newOptions setValue:@"YES" forKey:NSMigratePersistentStoresAutomaticallyOption];
[newOptions setValue:@"TRUE" forKey:NSInferMappingModelAutomaticallyOption];
BOOL success = FALSE;
success = [super configurePersistentStoreCoordinatorForURL:url ofType:fileType modelConfiguration:configuration storeOptions:newOptions error:error];
return success;
}
켤 storeOptions 사전에 두 플래그는 프로세스의 I (이미 Xcode4에서 약 1 버그를 작업하는!)를 사용하여 봤는데
- 는
- 이동 편집기 메뉴 (왼쪽 구불 구불으로, Xcode4에서 "something.xcdatamodel"라는 이름의) 모델을 선택, "새 모델 버전 추가 ..."를 선택하십시오.
- 마지막 버전보다 1 정수가 더 큰 이름을 지정하십시오. 모든 파일을 선택한 다음 선택 이전이 있다면 "4"XCode4 버그에 새로 생성 한
- 해결에 현재 모델 버전을 변경, 새 "5"오른쪽 창에서
- 이름 새롭게 생성 된 모델. 그렇지 않으면 Xcode에서 새로 만든 모델에 선택 항목을 표시하지만 대신 이전 모델을 편집하므로 CoreData의 모든 항목이 완전히 손상됩니다.
- 모델 편집; 이 경우 기존 엔티티에 새 속성을 추가합니다.
- 저장. 짓다. 운영. ... 크래시.
내가 말했던 것을 제외하면, 3에서 약 2 번 올바르게 작동합니다. 한 번 작동하면 가볍게 마이그레이션이 완료되고 다음 저장으로 새 모델 버전이 저장됩니다 (분명히).
나는 위의 단계에서 잘못하고있는 것이 있다고 생각하지만 문서를 5 ~ 6 회 읽었으며 명백한 것을 볼 수 없습니다. NSPersistentDocument 문서가 오래되었다는 것을 돕지는 못하지만, iPhone에서 가벼운 마이그레이션을 많이했기 때문에이 작업을 수행하는 데 상당한 자신감을 가지며 나에게 맞는 것 같습니다.
다른 것들 내가 체크/시도했다 : - iPhone Core Data Lightweight Migration Cocoa error 134130: Can't find model for source store (아니, 유일한 루트 xcdatamodel 포함되고 있었다)
오류가 발생하면 오류가 발생합니까? – TechZen
개발 빌드를 이전 하시겠습니까? – TechZen
매번 같은 저장소를 계속 사용하고 있습니까? 아니면 매번 새로운 복사본으로 시작하고 있습니까? – TechZen