2013-10-03 5 views
0

제어 할 수없는 웹 서비스에서 JSON 응답을 가져오고 있습니다. 이 응답에는 동일한 JSON에 여러 개의 관련 Artwork 개체가있는 Show 엔터티에 매핑 된 요소가 포함되어 있습니다.MagicalRecord : 관련 객체의 속성 수정

userinfo 키를 통해 관계를 설정했는데 잘 작동합니다.

{ 
     Filetype = jpg; 
     Id = "-1036406380"; 
     Offset = 2; 
     Rating = 1; 
     Type = 3; 
    } 

이 같은 Id 여러 요소가있을 수 있습니다 : 내 문제는 JSON의 작품 요소는 고유 ID를 포함하지 않는 것입니다. 이렇게하면 CoreData에 이미 저장되어있는 요소를 MagicalRecord가 인식하지 못하게됩니다.

내 해결책은 uniqueArtworkID라는 엔티티에 새로운 필드를 도입하는 것이 었습니다. 이 필드는 ID, 오프셋 및 유형으로 연결된 문자열입니다.

마지막으로 질문 : 코드의 어떤 시점 또는 시점에서 고유 ArtArtworkID를 만들면 MagicalRecord가이를 Artwork 엔터티의 "기본"키로 선택할 수 있습니까?

편집 : 고유 ID를 생성하고 설정하려면 내 NSManagedObject 하위 클래스에서 - (BOOL) MR_importValuesForKeysWithObject:(id)objectData을 무시할 수 있다는 것을 알았습니다. 한 걸음 더 가깝지만 원래 JSON 데이터에 고유 키가 포함되어 있지 않고 기존 객체에 대한 검사가 실패하여 중복 된 항목이 생성되는 문제는 해결되지 않습니다.

답변

1

MagicalRecord를 삭제하고 Core Data API를 직접 사용하여 해결되었습니다.