Kodowanie NSAttributesString Throws Error

Na podstawie zaakceptowanej odpowiedzi nato pytanie Napisałem następujący kod:

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

gdzie ts jest NSAttributedString, który jest wypełniony tekstem i niektórymi atrybutami (w tym przypadku kolorami).

Gdy wykonam ten kod, otrzymuję ten błąd:

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

Jestem nowy na arenie NSCoder, ale odpowiedź na powyższe pytanie sprawiła, że ​​wydaje mi się, że to wszystko, co muszę zrobić. To jest? Przegapiłem coś?

EDYTOWAĆ:

Nierozpoznany selektor w tym przypadku jest wysyłany do atrybutu koloru w łańcuchu NSAttributedString. Kiedy inicjalizuję łańcuch w taki sposób:

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

Słownik jest zbudowany w następujący sposób:

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

I NSLog ze słownika daje to:

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

Adres CGColor powyżej odpowiada adresowi w komunikacie o błędzie.

questionAnswers(2)

yourAnswerToTheQuestion