Ошибка кодирования NSAttributedString

На основании принятого ответа наэтот вопрос Я написал следующий код:

<code>NSData* somedata;
somedata=[NSKeyedArchiver archivedDataWithRootObject:ts];
</code>

где ts - это NSAttributedString, которая заполняется некоторым текстом и некоторыми атрибутами (в данном случае цветами).

Когда я выполняю этот код, я получаю эту ошибку:

<code>*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType encodeWithCoder:]: unrecognized selector sent to instance 0x6eb5b90'
</code>

Я новичок в области NSCoder, но ответ на вышеупомянутый вопрос заставил меня подумать, что это все, что мне нужно сделать. Это? Я что-то пропустил?

РЕДАКТИРОВАТЬ:

Нераспознанный селектор в этом случае отправляется атрибуту цвета в NSAttributedString. Когда я инициализирую строку примерно так:

<code>NSAttributedString *ts = [[NSAttributedString alloc] initWithString:text attributes:self.currentAttributeDictionary];
</code>

Словарь построен так:

<code>self.currentAttributeDictionary=[NSDictionary dictionaryWithObjectsAndKeys:
                                 [self.currentColor CGColor],(NSString*)kCTForegroundColorAttributeName,
                                 nil];
</code>

И NSLog словаря дает это:

<code>New dictionary is: {
CTForegroundColor = "<CGColor 0x6eb5b90> [<CGColorSpace 0x6e968c0> (kCGColorSpaceDeviceRGB)] ( 1 1 0 1 )";}
</code>

Приведенный выше адрес CGColor совпадает с адресом в сообщении об ошибке.

Ответы на вопрос(2)

Ваш ответ на вопрос