설명서가 매우 제한적이며 문제점 해결 방법이 없습니다.핵심 데이터 버전 관리 및 사용자 지정 정책을 사용하여 마이그레이션
새로운 엔티티 (기존 엔티티와의 관계가 있음)를 추가해야합니다. 또한 기존 엔티티의 일부 속성을 추가하고 이름을 바꿉니다.
경량화 예 :
오래된 모델은 하나 개의 속성 name
하나의 엔티티 Item
있습니다.
새 모델에서는 Item
에 새로운 속성 dateAdded
과 name
을 title
으로 변경하고 싶습니다. 이 시점에서 dateAdded
이 선택적이거나 기본값이 주어지면 간단한 마이그레이션 기능을 사용할 수 있습니다. 내가 틀렸다면 나를 바로 잡아라.
그러나 title
속성이있는 새로운 List
엔티티를 추가하고 싶습니다. 그리고 일대일 관계를 추가하십시오. 목록은 비어 있거나 많은 항목을 가질 수 있습니다. 항목은 정확히 하나의 목록을 참조해야합니다.
그래서 나는 무엇을해야하며 어떤 순서로해야하는지 혼란 스럽습니다.
경량 마이그레이션 기능을 비활성화하여 마이 그 레이션을 사용하지 않도록 설정하십시오 (
NSDictionary* options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:NO], NSInferMappingModelAutomaticallyOption, nil];
).모델의 새 버전을 만드십시오. 나는 내가 원하는 변화를한다.
새 매핑 모델을 만듭니다. 근원은 오래된 모형, 표적은 새로운 모형이다.
ItemToItem
에서title
을$source.name
으로 설정했습니다.
매핑 모델로 작업 할 때 Xcode가 계속 충돌하는 대신 다음에 무엇을해야할지 모릅니다. 컨텍스트 내에서 List
인스턴스를 하나 만들고 관계 정책으로 인해 모든 항목을 참조해야한다고 생각합니다. 그리고 나는 이것을하기 위해 사용자 정의 NSEntityMigrationPolicy
을 사용해야합니다. 이 도전을 성취하기위한 도움이 필요합니까?
왜 중량이 가벼워 야 할 필요가 없습니까? 그것은 나를 위해 일하고있다. 그래서 내 꿈의 코드가 틀린거야? !! – khunshan