Создать UIColor из данных NSColor - PullRequest
2 голосов
/ 20 июля 2010

У меня есть приложение CoreData Mac, для которого я пишу интерфейс для iOS. Все работает хорошо, поэтому я могу успешно читать файлы, созданные с помощью приложения Mac в версии для iOS. Я пытаюсь понять, как считывать данные NSColor (хранящиеся в виде модели NSData в моей модели данных) в UIColor в версии iOS для приложения.

Подведем итог: как взять объект NSData, содержащий заархивированный объект NSColor, и преобразовать его в соответствующий объект UIColor на устройстве iOS?

Ответы [ 2 ]

1 голос
/ 21 июля 2010

Посмотрите на следующее из Руководство по программированию основных данных

Вы пытались заменить NSColor на UIColor?UIColor реализует протокол NSCoding

// - (NSColor *)color
- (UIColor *)color
{

    [self willAccessValueForKey:@"color"];

    // NSColor *color = [self primitiveColor];
    UIColor *color = [self primitiveColor];

    [self didAccessValueForKey:@"color"];

     if (color == nil)

    {

        NSData *colorData = [self colorData];

        if (colorData != nil)

        {

            color = [NSKeyedUnarchiver unarchiveObjectWithData:colorData];                

            [self setPrimitiveColor:color];

        }

    }

    return color;

}
1 голос
/ 21 июля 2010

То, что я сделал до сих пор (и это работает, но не красиво), - это чтение NSData в NSString (данные, кажется, закодированы в ASCII).Значения RGB присутствуют в строке NSString и с небольшим разбором могут быть извлечены для создания нового UIColor.

Я не уверен, является ли это глобальным решением или подходящим для моего случая, ноэто начало.

Очевидно, что было бы лучше сериализоваться как NSArray, и я рассмотрю это в будущем.

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