即使应用程序将被删除,如何在 NSUserDefaults 中保存数据?

Posted

技术标签:

【中文标题】即使应用程序将被删除,如何在 NSUserDefaults 中保存数据?【英文标题】:How to save data in NSUserDefaults even if app will be deleted? 【发布时间】:2009-11-25 12:54:58 【问题描述】:

我将一些字符串和数字保存到 NSUSerDefault, 但是当我卸载并重新安装应用程序时,数据会被删除。

是否有可能将数据存储在其他地方?也许在钥匙串里?

【问题讨论】:

【参考方案1】:

您可以在两个地方存储在删除应用程序后仍会保留的数据,但在这两种情况下,它都不是隐藏数据,所以如果您要查找的是这些数据,那么您就不走运了。

您的两种可能性是 1) 将数据保存到照片库。 (但是,除非您让用户为您选择照片,否则您无法将其读回。) 2)地址簿。这是一个无需用户输入即可创建条目并选择它的地方。

【讨论】:

对于 ios 4 和 5,还有 1 个选项:日历。 对于 IOS 5+ 还有 iCloud,对于任何 ios-任何其他 web 服务-如果用户重新安装您的应用程序,您只需保存用户 ID 的数据并重新下载(更重要的是,您可以在任何其他设备用户有 - ipad/mac/pc/android 等)。卸载应用程序时在设备上保存数据的想法对我来说仍然很疯狂 - 这将是非常糟糕的用户体验。【参考方案2】:

您可以在钥匙串记录的 cmets 字段中存储少量数据。

但是,我怀疑 Apple 会允许这样做,因为这会违反应用程序沙盒化的原则。很难想出一个正当理由让应用程序在数据消失后留下数据。

【讨论】:

有一些应用内购买案例,如果用户不小心从他们的设备上删除了应用程序,您希望确保内容保持解锁状态。 这就是为什么苹果希望在每个带有 iap 的应用中都有一个“恢复购买”按钮。

以上是关于即使应用程序将被删除,如何在 NSUserDefaults 中保存数据?的主要内容,如果未能解决你的问题,请参考以下文章

即使应用程序在 ios 中被杀死或从后台删除,如何继续更新我的位置?

应用程序如何检测到它将被卸载? [复制]

在recyclerview中删除和刷新

即使删除任何 HTML DOM 元素,如何保持固定布局

即使禁用了文本选择,IOs Cordova 长按也会显示文本选择放大镜,如何删除?

删除IOS应用程序时如何删除文件?