在 iOS 13/14 上删除应用程序时,UserDefaults 是否会被擦除?

Rap*_*ael 5 ios icloud swift

当我使用 plainUserDefaults而不使用任何其他框架且不使用NSUbiquitousKeyValueStore,从手机中删除该应用程序后,UserDefaults 是否会保留在 iCloud 中,并在重新安装该应用程序时从 iCloud 中恢复?

我在文档中读到,通常 UserDefaults 包含在(iCloud)备份中。因此,如果用户安装该应用程序,该应用程序会存储一些 UserDefaults,用户进行 iCloud 备份,然后从该备份恢复手机,UserDefaults 应该会再次存在。

但是,如果用户故意从手机中删除我的应用程序,然后从商店重新安装它,UserDefaults 是否仍然存在(从 iCloud 恢复),或者它们是否会因应用程序删除而被清除,并且不会因重新安装而恢复?

用户是否必须从 iCloud 设置应用程序中额外删除我的应用程序的 iCloud 数据才能摆脱 UserDefaults,或者是否会删除应用程序(而不是移至应用程序库)?

我基本上想在用户从手机中删除应用程序后从零开始。

iOS 13 和 iOS 14 有什么不同吗?

Cod*_*Max 10

从设备中删除应用程序时,与该应用程序关联的所有本地数据也将被删除。这包括NSUserDefaults。但是,存储在在线服务中的任何数据都不会。例如,iCloud。如果用户/开发人员请求,应用程序将再次获取数据。

我之前遇到过一个问题,UserDefaults当用户删除我的应用程序时,哪些地方会被删除。因此,仅出于教育目的,如果您不想丢失数据,并且不想在线存储数据,请考虑使用Keychain.

欲了解更多信息,您可以在这里找到:钥匙串

  • 我在我的应用程序中验证了这一点:在 iOS 14 上删除应用程序(实际删除,而不是应用程序库)确实会清除 UserDefaults,而删除并重新安装应用程序后,钥匙串数据仍然存在。 (3认同)