MagicalRecord: изменить атрибут связанного объекта

Я импортирую ответ 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 не содержат этого уникального ключа, а проверки существующих объектов не выполняются, что приводит к дублированию записей.


person Cornelius    schedule 03.10.2013    source источник


Ответы (1)


Решено путем удаления MagicalRecord и использования Core Data API напрямую.

person Cornelius    schedule 16.10.2013