如何优雅地在 NSUserDefaults 中实现对旧数据的更新?

2015-08-08 16:51:02 +08:00
 SeanChense

我自己的一个类 A,实现了 encodeWithCoder 以及 initWithCoder ,通过 NSKeyedArchiver 实现存储实例对象 a 的功能。
当我要用 e 更新 a 时,我从一个 key 中取出所有的对象(abcd,其实就是个数组)。
如何判断从 NSUserDefaults 取出来的 f (内存地址已经改变,不再是当初那个 a,但内容和 a 一致)就是我要想更新的 a ?

我是给 class A 实现了一个方法 isEqualToA,比较所有属性的内容,property 是 NSString 的就用 isEqualToString 来比较,是 int 就判断是否相等。感觉这么做比较笨,听听大家的高见。

1740 次点击
所在节点    iDev
2 条回复
xhacker
2015-08-08 17:04:10 +08:00
其实不该把 NSUserDefaults 当数据库用。
SeanChense
2015-08-08 17:13:00 +08:00
@xhacker 是的😄,一开始就注定了不优雅。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/211759

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX