【问题标题】:Value of a variable that will persist even after clearing cache in iphone即使在 iphone 中清除缓存后仍然存在的变量的值
【发布时间】:2016-01-21 21:15:07
【问题描述】:

在 iOS 应用程序中,我想设置一个具有某个值的变量,即使在删除了正在下载该应用程序的相应 iPhone 的缓存后,我也需要该值保持不变。

示例:
NSString *val = @"即使在缓存删除后仍然存在";

即使从 iPhone 清除/删除缓存后,字符串中的值也需要保持不变。

【问题讨论】:

  • 在这种情况下,“缓存”是什么意思?缓存应该只包含可以随时重新创建的东西。如果即使删除了应用程序,您也想保留内容,这不是缓存释放。

标签: ios objective-c iphone caching


【解决方案1】:

如果我们谈论的是少量数据,例如用户 ID,您可以将它们存储在钥匙串中。即使应用程序被删除,它也会持续存在。

【讨论】:

  • @AVi,你能支持你的主张吗?因为根据我的经验,即使删除了供应商的所有 api,数据也会保留在 Keychain 中。
【解决方案2】:

在删除应用程序后没有任何方法可以存储价值,只有在服务器上上传价值并在重新安装后使用类似 userId 下载。

【讨论】:

  • 不是在删除应用程序之后,而是在从手机设置中删除缓存之后。
  • 保存在钥匙串中的数据在应用程序删除后仍然存在。
【解决方案3】:

我认为你应该看看 NSUserDefaults。这是一个您可以存储少量数据的地方,这些数据将在您的应用程序启动之间持续存在。

【讨论】:

  • 即使在缓存清除/擦除后这种情况还会持续吗?
  • 确实如此。这就是它的全部目标。
【解决方案4】:

如果您在谈论缓存清除,NSUserDefaults 就足够了。但是,如果删除应用程序,存储在其中的值将会丢失。

如果您希望您的数据在应用程序删除后仍然存在,您可以使用Keychain。这将允许您在卸载/重新安装之间保存/检索数据。

Keychain 方法不是设备擦除证明,因为这会重置设备上的所有数据。但是,如果用户通过iCloud 同步钥匙串并在擦除后重新登录,则钥匙串将被恢复,您的数据也会随之恢复。

【讨论】:

  • 所以缓存清除不会影响 NSUserDefaults 中的值?
  • @AthulRaj,是的,清除缓存只影响缓存文件夹,NSUserDefaults 存储在该文件夹中。
【解决方案5】:

如果可能的话,你的设备上会留下很多垃圾。

我建议创建用户帐户并将值存储在服务器上的数据库中。当用户删除应用程序时,该值将保留在数据库中,并且可以在重新安装应用程序后检索。

【讨论】:

  • 嗯,小而简单的数据也是可以的。
  • 那个数据库到底存储在哪里?
  • 实际上,如果应用被删除,沙盒数据也消失了。
  • 我意识到我的答案不清楚。我的意思是将值存储在在线数据库中。这样在重新安装后可以检索该值。
猜你喜欢
  • 2021-06-15
  • 1970-01-01
  • 2019-12-25
  • 1970-01-01
  • 2023-03-13
  • 2022-01-27
  • 2022-11-10
  • 1970-01-01
  • 2021-03-06
相关资源
最近更新 更多