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.