2014-11-06 3 views
0

iOS 응용 프로그램에서 xcdatamodel을 변경 (예 : 엔티티 및 일부 특성 추가)하면 업데이트 된 버전을 설치하려고 할 때 이전 버전이 이미 장치 (또는 시뮬레이터)에 설치되어있는 경우 내 iOS 응용 프로그램의 설치가 실패합니다. xcdatamodel 번들 등의 경량 마이그레이션을 이미 읽고 있지만 설치 문제를 해결할 수는 없습니다. 내 질문은; 이전 버전이 설치된 기기에 iOS 앱 (변경된 데이터 모델 포함)을 설치하는 것이 실제로 가능합니까?변경된 xcdatamodel을 가진 iOS 응용 프로그램을 이전 버전이 이미 설치된 장치에 설치할 수 있습니까

답변

0

가볍게 마이그레이션하면 원하는대로 작동하므로 더 나은 해결책입니다! 도움이 필요하면 확인하십시오 http://www.raywenderlich.com/27657/how-to-perform-a-lightweight-core-data-migration

정말 심각한 문제가있는 경우 SQL Store를 삭제하고 persistentStoreCoordinator 메소드에서 다시 작성할 수 있습니다. 모든 사용자 데이터가 손실됩니다. 디버깅에는 좋지만 생산에는 그다지 많은 것이 없습니다.

그냥 추가 :

//delete the store 
[[NSFileManager defaultManager] removeItemAtPath:storePath error:nil]; 
    // recreate the store 
    if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) { 
     NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
     abort(); 
    } 

INT하여 다음에

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator { 

그 모양을 경우 :

if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) { 
+0

안녕 보리스 - 조언을 건배. 나는 당신이 제안한 RayWenderlech 의사를 이미 사용하고있었습니다. 나는 결국 내 문제를 발견했다. 내 코드에서 _managedObjectModel에 대한 url은 단일 datamodel 빌드에서 괜찮 았던 .mom 파일 확장자를 찾고 있었지만 새 빌드에는 두 개의 데이터 모델 (이전에서 새 모델로의 마이그레이션을 용이하게하기 위해)이 필요했습니다. 따라서 my 확장명 .momd를 사용하여 _managedObjectModel 파일 – Mios

+0

Haaa 늙은 엄마/엄마 문제가 성공 했어. –

관련 문제