Ошибка кодирования 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 совпадает с адресом в сообщении об ошибке.