Основные данные: как сохранить CGImageRef или пользовательские типы данных? - PullRequest
0 голосов
/ 20 января 2010

мое приложение iPhone должно постоянно сохранять некоторые данные с использованием функциональных возможностей Core Data.

Вот фрагмент кода:

NSManagedObject *entity = [NSEntityDescription insertNewObjectForEntityForName:@"anEntity" inManagedObjectContext:self.managedObjectContext];

// ...
CGContextRef context;
// ...
[entity setContext:context];
NSError *error;
[self.managedObjectContext save:&error];
// ...

Моя модель данных определяет тип context как "трансформируемый". Это правильно? Во время сборки я получаю следующее предупреждение:

предупреждение: передача аргумента 1 'setContext:' из несовместимого типа указателя

Как вы можете хранить CGContextRef или вообще пользовательский тип данных с Core Data? Требуется ли для этого реализация кодера / декодера?

Спасибо, Норберт

Ответы [ 2 ]

2 голосов
/ 21 января 2010

Сначала вам нужно будет сериализовать образ в экземпляр NSData (или CFData). Посмотрите на CGImageDestinationCreateWithData, чтобы сделать это.

0 голосов
/ 21 января 2010

В этом ответе я предоставляю код для NSValueTransformer, который позволяет сохранять UIImages в преобразовываемый атрибут в Базовых данных.Вы можете сделать что-то подобное для нарисованного изображения в вашем контексте.Если вам нужно сохранить векторные элементы, вы можете нарисовать в PDF-контексте и сохранить данные для этого представления.

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