NSUserDefaults的可靠性如何?

时间:2016-01-19 22:40:12

标签: ios nsuserdefaults

不久前我发现了NSUserDefaults并且想:如果我能将我的应用程序所需的信息保存为NSUserDefaults,为什么还要创建数据库呢?这些是我的应用程序需要的变量:

  • 用户名(String类型)
  • 获得的硬币(Int16类型)
  • 雄鹿购买(Int16型)
  • 购买的物品(类型为[String])

NSUserDefaults作为使用数据库的替代方案的适用程度如何?如果我使用NSUserDefaults而不是数据库,列出所有可购买的"是否合理?作为枚举的项目?

2 个答案:

答案 0 :(得分:5)

NSUserDefaults documentation明确指出它的主要功能是存储用户偏好

  

默认系统允许应用程序自定义其行为以匹配用户的首选项。

当然没有什么可以阻止你使用它,否则,它是一种非常便宜和可靠的读写数据的方式,但值得知道它不是为存储应用程序常量和变量而设计的。

此外,如果用户查看他的应用程序容器(,因此可以轻松编辑),您写入的所有内容都可以以纯文本形式阅读。因此,您可能不希望将其用于用户可以更改以在游戏中获得优势的任何内容。

You might want to look into NSKeyedArchiver用于存储可能包含数据的自定义对象。这将提供更大的灵活性,您可以使用非纯文本格式对数据进行编码。

答案 1 :(得分:0)

NSUserDefaults主要用于不针对敏感数据的首选项。