【问题标题】:Using real device as simulator & storage使用真实设备作为模拟器和存储
【发布时间】:2018-06-01 18:07:13
【问题描述】:

我已经开始使用自己的 Iphone 作为模拟器,而不是虚拟的。 我的测试应用程序使用 UserDefaults 来保存一些持久数据。 如果我通过手机上的 XCode 重建应用程序,则不会重置此数据。 有没有办法在不卸载应用程序并再次通过手机上的 XCode 重新安装的情况下清除数据? 并且实际上没有添加一些额外的代码。

【问题讨论】:

  • 您可以从手机中删除该应用程序,然后通过 xcode 重新安装它,它将清除所有 UserDefaults 数据
  • @Scriptable 请阅读问题的最后一句(现在是倒数第二句)。
  • @Scriptable 是的,这就是我目前正在做的事情,但我觉得必须有一个更快/更简单的方法
  • 因此,您想清除用户默认设置而不执行以下任一操作:1. 删除并重新安装应用程序或 2. 添加代码以清除默认设置。没有其他方法可以从设备上的应用程序中清除用户默认值。在实际的模拟器中,您唯一的其他选择是找到 plist 文件并将其删除。
  • @rmaddy 似乎对我来说唯一方便的方法是添加一些代码。我考虑在调用 applicationWillTerminate 时删除该值。这行得通吗?

标签: ios xcode nsuserdefaults userdefaults


【解决方案1】:

你可以在didFinishLaunchingWithOptions试试这个

UserDefaults.standard.removePersistentDomain(forName:Bundle.main.bundleIdentifier!)
UserDefaults.standard.synchronize()

【讨论】:

  • 最好将其包装在 DEBUG 条件宏中,这样它就不会在发布模式下构建
  • @MichaelHulet 是的,如果他想在不同启动之间维护数据,他应该这样做
  • synchronize 已过时。不要调用它。
  • @rmaddy 可能是这个方法的app崩溃了谁知道
  • 如果可能的话,我想在不修改代码的情况下这样做。
猜你喜欢
  • 2019-05-21
  • 2010-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-27
  • 1970-01-01
  • 2013-10-16
  • 2022-12-11
相关资源
最近更新 更多