iOS: Data Persistence

奚才良
2023-12-01

有以下几种Data Persistence的方式:

1. 自定义一个plist file来存储。如果你只是存储一些简单的array, dictionary等,则使用这种方式。 plist file是存在<app root>/Document

2. 使用NSUserDefaults来存储。 顾名思义,NSUserDefaults通常是用来存储user settings and preferences. data保存在<app root>/Library/Preferences folder下。NSUserDefaults是cache机制,内存数据会自动和database里的东西同步,而不会想plist那样要手动存储。也就是说,但你调用NSUserDefaults来set data时,就已经存到database里了,但最保险是调用sync方法。而对于plist来说,你要手动把data写入plist file里。这样我们就可以设置在resign app时才把data存到plist里。

NSUserDefaults is not used for storing collections of data.

是否需要担心NSUserDefaults的performance? 答案是不需要,见http://stackoverflow.com/questions/6114641/accessing-nsuserdefaults-often


3. SQLite存储:主要用于存储relational data。

4. Core Data存储。如果要存储一些简单的data,那么使用core data就太大材小用了。core data是应该用来存储complex object。

5. 另外还有一个NSKeyedArchiver,保存整个这个对象数据, 很像java中的对象整体序列化。 见http://stackoverflow.com/questions/4555025/nskeyedarchiver-or-nsarray-writetofileatomically and http://blog.csdn.net/nono_love_lilith/article/details/7539659

6. When storing usernames and passwords it is better to use the Keychain service available in the iOS.   (Keychain Services Programming Guide in the Apple Documentation)


ref links

http://mobile.tutsplus.com/tutorials/iphone/iphone-sdk_store-data/  (best)

http://stackoverflow.com/questions/7058858/should-i-use-nsuserdefaults-or-a-plist-to-store-data

http://blog.csdn.net/nono_love_lilith/article/details/7539659

http://blog.csdn.net/liuhongwei123888/article/details/6841338

 类似资料:

相关阅读

相关文章

相关问答