Codificando erro NSAttributedString Throws

Com base na resposta aceita paraessa questão Eu escrevi o seguinte código:

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

em que ts é um NSAttributedString que é preenchido com algum texto e alguns atributos (cores, nesse caso).

Quando eu executo este código, recebo este erro:

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

Eu sou novo no NSCoder arena, mas a resposta à pergunta acima fez parecer que isso é tudo que eu tenho que fazer. É isso? Perdi alguma coisa?

EDITAR:

O seletor não reconhecido nesse caso está sendo enviado para um atributo de cor no NSAttributedString. Quando inicializo a string da seguinte forma:

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

O dicionário é construído assim:

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

E um NSLog do dicionário produz isso:

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

O endereço do CGColor, acima, corresponde ao endereço na mensagem de erro.

questionAnswers(2)

yourAnswerToTheQuestion