Codificación NSAttributedString arroja error

Basado en la respuesta aceptada aesta pregunta Escribí el siguiente código:

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

donde ts es una NSAttributedString que se rellena con algún texto y algunos atributos (colores, en este caso).

Cuando ejecuto este código, recibo este error:

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

Soy nuevo en la arena de NSCoder, pero la respuesta a la pregunta mencionada hace que parezca que esto es todo lo que tengo que hacer. ¿Lo es? ¿Me he perdido algo?

EDITAR:

El selector no reconocido en este caso se envía a un atributo de color en la NSAttributedString. Cuando inicializo la cadena así:

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

El diccionario está construido como tal:

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

Y un NSLog del diccionario produce esto:

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

La dirección del CGColor, arriba, coincide con la dirección en el mensaje de error.

Respuestas a la pregunta(2)

Su respuesta a la pregunta