Ios 默认值的可靠性如何?

Ios 默认值的可靠性如何?,ios,nsuserdefaults,Ios,Nsuserdefaults,不久前,我发现了NSUserDefaults并想:如果我可以将应用程序所需的信息保留为NSUserDefaults,为什么还要创建数据库呢?以下是我的应用程序需要的变量: 用户名(字符串类型) 赚取的硬币(Int16型) 购买的雄鹿(Int16型) 购买的物品(类型为[字符串]) NSUserDefaults作为使用数据库的替代方案有多合适?如果我使用NSUserDefaults而不是数据库,将所有“可购买”项目列为枚举是否合理?NSUserDefaults主要用于首选项,而不是敏感数据 N

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

  • 用户名(字符串类型)
  • 赚取的硬币(Int16型)
  • 购买的雄鹿(Int16型)
  • 购买的物品(类型为[字符串])

NSUserDefaults
作为使用数据库的替代方案有多合适?如果我使用
NSUserDefaults
而不是数据库,将所有“可购买”项目列为枚举是否合理?

NSUserDefaults主要用于首选项,而不是敏感数据

NSUserDefaults主要用于首选项,而不是敏感数据

文件明确指出,它的主要功能是存储用户偏好:

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

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

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

用于存储可能包含数据的自定义对象。这将允许更大的灵活性,并且您可以以非纯文本格式对数据进行编码。

明确指出,它的主要功能是存储用户首选项:

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

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

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

用于存储可能包含数据的自定义对象。这将允许更大的灵活性,并且您可以用非纯文本格式对数据进行编码