Codierung NSAttributedString wirft Fehler

Basierend auf der akzeptierten Antwort aufdiese Frage Ich habe folgenden Code geschrieben:

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

Dabei ist ts ein NSAttributedString, der mit Text und einigen Attributen (in diesem Fall Farben) gefüllt ist.

Wenn ich diesen Code ausführe, erhalte ich folgende Fehlermeldung:

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

Ich bin neu in der NSCoder-Arena, aber die Antwort auf die oben genannte Frage ließ es so erscheinen, als ob dies alles ist, was ich tun muss. Ist es? Habe ich etwas verpasst?

BEARBEITEN:

Der nicht erkannte Selektor wird in diesem Fall an ein Farbattribut im NSAttributedString gesendet. Wenn ich den String wie folgt initialisiere:

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

Das Wörterbuch ist so aufgebaut:

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

Und ein NSLog des Wörterbuchs ergibt dies:

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

Die Adresse von CGColor oben stimmt mit der Adresse in der Fehlermeldung überein.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage