Сохранить список CGPoints, используя NSUserDefaults - PullRequest
18 голосов
/ 02 января 2011

У меня есть набор CGPoints из CCTMXLayer, который я хочу сохранить в NSUserDefaults, но не могу найти элегантный способ сделать это.

Первоначально я надеялся сохранить NSDictionary с NSMutableSet для значения, содержащего несколько NSValues ​​(valueWithCGPoint). Из того, что я могу сказать, ни NSMutableSet, ни NSValue не поддерживаются NSUserDefaults.

На данный момент я рассматриваю возможность сохранения значений x & y CGPoint в виде строки и просто преобразовываю их туда и обратно по мере необходимости.

Ответы [ 2 ]

48 голосов
/ 02 января 2011

Существует пара функций NSStringFromCGPoint и CGPointFromString. Вы можете использовать их для создания массива строк, представляющих точки для сериализации, а затем конвертировать обратно, когда вы закончите.

1 голос
/ 02 января 2011

Поместите их в NSValue объекты. Как только они появятся, вы можете записать NSValues на диск (поскольку они соответствуют <NSCoding>) или поместить их в NSUserDefaults или что-то еще.

...