Могу ли я использовать собственный класс для хранения данных атрибута в Core Data? - PullRequest
2 голосов
/ 17 января 2010

Apple приводит пример , что я мог бы создать класс MyColor для хранения цветовых данных и использовать его с объектом NSAttributeDescription, вызвав метод -setAttributeValueClassName:.

Но чего не хватает, так это: как MyColor persistet? И что я должен предоставить в -setAttributeType:, когда я это сделаю? Нет такого типа, как «пользовательский класс» или что-то в этом роде.

Могут ли Core Data просто сериализовать MyColor и как-то хранить его в типе данных String? Как это работает?

Редактировать: Это имеет отношение к преобразователям значений?

1 Ответ

3 голосов
/ 17 января 2010

Если вы прочитаете ту же документацию, вы увидите, что они рекомендуют использовать трансформируемые атрибуты для пользовательских классов:

Примечание. Пример значения объекта использует экземпляр NSColor; если ты используете Mac OS X v10.5, вам следует обычно используют трансформируемый атрибут вместо.

Базовые данные iPhone OS 3.0 аналогичны Базовым данным эпохи Снежного барса, поэтому к ним относится и вышеприведенное утверждение.

Вы захотите создать NSValueTransformer, который преобразует ваш пользовательский тип в тип, который могут обрабатывать Core Data, например NSData. Эта вики-страница CocoaDev содержит ссылки на некоторые примеры NSValueTransformer. Я предоставляю некоторый код, который я использую для преобразования UIImages в данные PNG в этом ответе .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...