我应该在哪里持久地和线程安全地在iOS中存储单个值?

时间:2013-03-01 08:11:27

标签: ios objective-c

我需要存储一些单一值,例如从服务器登录用户的id,或者例如第一次启动应用程序的标志。此信息必须持久存储,当然应该有线程安全。这样做的最佳方法是什么?据我了解,至少有两种持久存储技术 - NSUserDefaults和Core Data。第一个不应该做我需要的,即它应该存储用户偏好,而不是技术数据,第二个应该存储数量大于1的关系实体,AFAIK。

是否有其他技术可以持久存储具有线程安全性的应用程序数据?我是否应该进一步了解核心数据?

2 个答案:

答案 0 :(得分:3)

NSUSerDefaults是您需要使用的。只要没有机密信息,您就可以保存数据。请不要使用 NSUserDefaults 来保存密码等内容。使用Keychain服务。

答案 1 :(得分:1)

使用NSUserDefaults。这不仅仅是针对用户的偏好。您可以在其中存储任何设置,选项,标记或数据。出于性能原因,它不应该太多(例如数千条或更多条目)。

您也可以简单地将文件写入用户的文档文件夹。 NSSStringNSArrayNSDictionary都有可以写入文件或从文件中读取的方法。