Я импортирую ответ JSON из веб-сервиса, который я не контролирую. Этот ответ содержит элементы, которые я сопоставил с сущностью Show
, имеющей несколько связанных объектов Artwork
в одном JSON.
Я установил отношения с помощью ключей userinfo, и это работает хорошо. Моя проблема в том, что элементы изображения в JSON не содержат уникального идентификатора:
{
Filetype = jpg;
Id = "-1036406380";
Offset = 2;
Rating = 1;
Type = 3;
}
Может быть несколько элементов с одним и тем же Id
. Это приведет к тому, что MagicalRecord не распознает эти элементы, если они уже сохранены в CoreData.
Мое решение состояло в том, чтобы ввести новое поле в сущности под названием uniqueArtworkID. Это поле будет строкой, объединенной идентификатором, смещением и типом.
Наконец, вопрос: как или в какой точке кода я могу создать уникальный идентификатор ArtworkID, чтобы MagicalRecord мог выбрать его в качестве «первичного» ключа для объекта Artwork?
Изменить: я обнаружил, что могу переопределить - (BOOL) MR_importValuesForKeysWithObject:(id)objectData
в своем подклассе NSManagedObject для создания и установки уникального идентификатора. На один шаг ближе, но это не решает проблему, заключающуюся в том, что исходные данные JSON не содержат этого уникального ключа, а проверки существующих объектов не выполняются, что приводит к дублированию записей.