Speichern von NSRect in NSUserDefaults

8

Momentan versuche ich einen NSRect in meinen Benutzereinstellungen zu speichern. Im Moment verwende ich einen NSValue, um es als ein Objekt zu umhüllen und es dann als Objekt mit dem folgenden Code in die Benutzervorgaben zu speichern:

%Vor%

Wenn ich es jedoch ausführe, erhalte ich eine Fehlermeldung, die besagt: [NSUserDefaults setObject: forKey:]: Es wurde versucht, den Nichteigenschaftswert 'NSRect: {{0, 0}, {50, 50}}' der Klasse einzufügen 'NSConcreteValue'.

Weiß jemand, wie ich das beheben kann? Danke.

    
TheAmateurProgrammer 11.10.2011, 13:36
quelle

2 Antworten

12

NSValue wird von den Benutzerstandardeinstellungen nicht unterstützt.

  

Der value-Parameter kann nur aus Eigenschaftenlisten-Objekten bestehen: NSData,   NSString, NSNumber, NSDate, NSArray oder NSDictionary. Für NSArray und   NSDictionary-Objekte müssen ihre Inhalte Eigenschaftslistenobjekte sein.

Sie müssen den Wert in Daten archivieren und ihn dann beim Zugriff darauf entpacken.

%Vor%     
Joe 11.10.2011, 13:50
quelle
46

Hier ist eine viel einfachere Lösung mit NSString :

%Vor%

Schnell 4

%Vor%     
Mundi 11.10.2011 14:06
quelle