Я хотел бы знать, как сериализовать NSAttributedString, чтобы последовательно хранить его в управляемом объектном контексте основных данных. Однако я нашел этот ответ, но в ветке нет дальнейших объяснений. Может ли кто-нибудь объяснить (в двух словах), как вручную кодировать атрибутированную строку? Было бы весьма признателен!
Большое спасибо!
РЕДАКТИРОВАТЬ:
Вот что я делаю:
NSMutableData *renderCacheData = [[NSMutableData alloc] init];
NSKeyedArchiver *renderCacheArchiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:renderCacheData];
[renderCacheArchiver encodeObject:bSelf.attString forKey:@"aS"];
В последней строке он терпит неудачу, вывод выглядит следующим образом:
*** Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «-[__NSCFType encodeWithCoder:]: нераспознанный селектор отправлен экземпляру 0x1c538a70»
Теперь, когда я понял другие вопросы здесь, это связано с тем, что объекты CT * не могут сериализоваться (мой атрибуты NSAttributedString dict содержит атрибуты CTFont и CTColorRef. Единственное, что я понятия не имею, как написать категории или (что маловероятно?) подкласса этих типов, чтобы они могли сериализоваться сами.