Speichern Sie die Liste der CGPoints mit NSUserDefaults
-
14-10-2019 - |
Frage
Ich habe eine Reihe von CGPoints von einem CCTMXLayer, die ich in NSUserDefaults speichern möchte, finde aber keine elegante Möglichkeit, dies zu tun.
Ursprünglich hatte ich gehofft, ein NSDictionary mit einem NSMutableSet für einen Wert zu speichern, der mehrere NSValues (valueWithCGPoint) enthält.Soweit ich weiß, werden weder NSMutableSet noch NSValue von NSUserDefaults unterstützt.
An dieser Stelle denke ich darüber nach, die x- und y-Werte des CGPoint als String zu speichern und ihn bei Bedarf einfach hin und her zu konvertieren.
Lösung
Es gibt ein Funktionspaar NSStringFromCGPoint
Und CGPointFromString
.Sie können diese verwenden, um ein Array von Zeichenfolgen zu erstellen, die die Punkte für die Serialisierung darstellen, und diese dann zurückkonvertieren, wenn Sie fertig sind.
Andere Tipps
Pack sie ein NSValue
Objekte.Sobald sie dort sind, können Sie sie schreiben NSValues
auf die Festplatte übertragen (da sie konform sind mit <NSCoding>
) oder fügen Sie sie ein NSUserDefaults
oder Wasauchimmer.