제어 할 수없는 웹 서비스에서 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 데이터에 고유 키가 포함되어 있지 않고 기존 객체에 대한 검사가 실패하여 중복 된 항목이 생성되는 문제는 해결되지 않습니다.