2017-01-16 2 views
2

코어 데이터 구조를 변경하려면 도움이 필요합니다. 이미 기존 데이터베이스로 내 응용 프로그램을 만들었지 만 이제는 Seam cloudKit 동기화를 사용하고 싶습니다. 코드를 변경해야하지만, 그렇게하면 내 응용 프로그램이 다운됩니다! 나는 그것을 사용해야 이제코어 데이터 마이그레이션 : 영구 저장소 유형 변경

try coordinator.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: url, options: [NSMigratePersistentStoresAutomaticallyOption: true,NSInferMappingModelAutomaticallyOption: true]) 

: 은 (삭제하고 나는 그것을 이미 데이터 구조를 가지고 언급으로 ... 옵션이 아닌 다시 응용 프로그램을 빌드) NSPersistentStoreCoordinator에서

나는 다음과 같은 코드를 사용 : 당신은 내가 SMStore.type

인가에 NSSQLiteStoreType에서 ofType을 변경해야 할주의로

try coordinator.addPersistentStore(ofType: SMStore.type, configurationName: nil, at: url, options: [NSMigratePersistentStoresAutomaticallyOption: true,NSInferMappingModelAutomaticallyOption: true]) as? SMStore 

그걸 할 수있는 방법이 있니? 누구든지 아이디어가 있습니까? 누군가가 도울 수 있기를 바랍니다.

대단히 감사합니다.

답변

1

NSPersistentStoreCoordinator 방법 migratePersistentStore(_:to:options:withType:)을 사용할 수 있습니다. 이 방법은 기존 영구 저장소 파일을 새 파일로 이동하고 영구 저장소 유형을 변경할 수 있습니다. 이름에 "마이그레이션"이 있더라도 모델 버전 이전과 아무런 관련이 없습니다. 이 경우 영구 저장소를 새 파일로 마이그레이션합니다.

이전 저장소 유형을 사용하여 영구 저장소를 추가 한 다음 새 저장소 유형으로 마이그레이션해야합니다.

+0

나는 그것을했다 ..하지만 항상 오류를 실행 ... 나는 그것을 시도 : [링크] (https://github.com/kevinzhow/Diary/blob/master/Diary/Helper/DiaryCoreData.swift) 또는 그 : [링크] (http://stackoverflow.com/questions/21566819/xcode-core-data-change-existing-xml-to-sqlite-nsxmlstoretype-to-nssqlitestoret) 나는 항상 오류가 발생했습니다 .. . 결코 시도해보십시오. – Selonath

+0

오류가 무엇인지 말하지 않고 ** 오류가 있다고 말하면 ** 항상 ** 시간 낭비입니다. 어떤 오류가 있었습니까? –

+0

이 오류는 두 번째 링크를 기반으로합니다. 2017-01-18 19 : 15 : 59.901216 Seam3_Example [72047 : 3429091] [오류] 오류 : 절대로 열어 본 적이없는 파일에 저장하려고 시도했습니다. "이 NSPersistentStoreCoordinator에는 영구 저장소가 없습니다 (알 수 없음). 저장 작업을 수행 할 수 없습니다." 마지막 오류가 기록되지 않았습니다. 2017-01-18 19 : 15 : 59.926 Seam3_Example [72047 : 3429091] *** 캐치되지 않은 예외 'NSInternalInconsistencyException'로 인해 앱을 종료합니다. 이유 : '이 NSPersistentStoreCoordinator에 영구 저장소가 없습니다 (알 수 없음). 저장 작업을 수행 할 수 없습니다. ' – Selonath