[NSUserDefaults standardUserDefaults] 的持久性如何?
Posted
技术标签:
【中文标题】[NSUserDefaults standardUserDefaults] 的持久性如何?【英文标题】:How persistent is [NSUserDefaults standardUserDefaults]? 【发布时间】:2011-03-09 04:02:36 【问题描述】:我正在使用 [NSUserDefaults standardUserDefaults] 来存储应用程序设置。
我的问题是:
这些设置会在应用删除时移除吗? 它们是否在应用程序更新后保留(通过 应用商店)?因为我使用它来存储密码,并且不希望我的用户在每次更新时都重置密码。另外,我希望重置密码的唯一方法是删除应用程序并重新安装。
NSUserDefault 是正确的选择吗?
谢谢, 杰里米
【问题讨论】:
【参考方案1】:是的,它们会在应用程序删除时被删除,是的,它们会在应用程序更新时被保留。
但是,不建议您将敏感数据存储在 NSUserDefaults 中,相反我会考虑使用钥匙串。
【讨论】:
谢谢汤姆!正是我需要的那种回应。 嗨,Tom 和 jchatard,感谢您的帖子,它也对我有帮助。但是,如果我想在应用程序被删除的情况下存储数据,还有吗?喜欢使用 plist 吗?我的情况是存储用户是否有应用内购买项目的信息。显然,如果他们删除并重新安装应用程序,我不想再次向他们收费。还是应用商店在他们的 iTunes 帐户中记住他们的购买历史?谢谢。 当一个应用程序被删除时,它的所有数据都会随之删除。我不知道商店是否记得用户购买了什么。 唯一的方法是使用云存储,这也可以让您在运行您的应用程序的多个设备之间“同步”首选项 @AnthonySKPayment.defaultQueue().restoreCompletedTransactions()
会起作用。【参考方案2】:
我在我的应用程序中使用 NSUserDefaults 来允许我的同事对我的应用程序进行额外访问。他们只需在设置中输入密码字即可完全打开应用程序。
每次我更新应用程序时,他们都必须重新输入代码字,所以我会根据经验说更新后不会保留它们。需要重新输入值。
【讨论】:
以上是关于[NSUserDefaults standardUserDefaults] 的持久性如何?的主要内容,如果未能解决你的问题,请参考以下文章