将CGAffineTransform序列化以存储在NSUserDefaults中

6

我该如何在NSUserDefaults中存储CGAffineTransform?由于它包含6个浮点值,因此将每个值作为浮点数存储需要大量重复的工作...所以我想知道是否有更聪明的方法。

2个回答

13

使用NSStringFromCGAffineTransform()和CGAffineTransformFromString()。

使用NSValue,我得到了以下结果:

-[NSUserDefaults setObject:forKey:]: 试图插入非属性值'CGAffineTransform: {{0.9291659, 0, 0, -0.9291659}, {41.675232, 823.75122}}',类为'NSConcreteValue'。请注意,属性列表中的字典和数组也必须仅包含属性值。


嗯,对啊,不知道为什么我检查了其他的,因为NSValue并没有真正进入用户默认设置... - Jonny

8

将它包装在一个NSValue实例中:

NSValue *affineTransformValue = [NSValue valueWithCGAffineTransform:myTransform];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接