2013-04-08 1 views
0

iOS 프로젝트에 두 가지 버전의 데이터 모델이 있습니다.Versioned Data 코어 데이터 통합 ​​모델

데이터 모델의 차이점은 새로운 모델에는 "new_col"이라는 새 필드가 있다는 것입니다.

프로젝트의 일부에서이 "new_col"필드로 필터링 된 데이터를 가져와야합니다.

그래서 다음 코드를 사용했습니다.

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"new_col = %@", val]; 
[request setPredicate:predicate]; 

NSArray *results = [context executeFetchRequest:request error:&err]; 

그리고 예외 직면 - 'NSInvalidArgumentException을'이유 : '실체에없는 키 패스 new_col ...

나는 때문에 원래의 데이터 모델의입니다 것을 알고있다.

원본 데이터를 새 데이터 모델로 변환해야한다고 생각합니다.

어떻게 변환하나요?

답변

0

새 속성을 추가하고 이전 버전과의 호환성을 유지하려면 새 속성의 기본값을 지정하거나 코어 데이터 편집기에서 "선택적"으로 두어야합니다.

이 작업을 완료하면 자동 마이그레이션을 사용하도록 설정해야합니다. 자세한 방법은 Implementation of “Automatic Lightweight Migration” for Core Data을 참조하십시오. 그런 다음 기존/이전 엔티티는 기본값 (정의 된 경우)을 취하거나 속성이 선택 사항이 아닌 경우 nil을 취합니다.

+0

감사합니다. 최신 버전의 데이터 모델을 설정해야합니다. – Yun