【问题标题】:Xcode 7+ Is there a way to Preserve App State after RecompilingXcode 7+ 有没有办法在重新编译后保留应用程序状态
【发布时间】:2016-02-25 19:14:42
【问题描述】:

我的应用程序有 8 个以上屏幕的深度导航链(向导式)。当我在编辑视图控制器时,我想进行快速的视觉更改并重新测试,作为测试人员,我必须完成整个流程才能在重新编译之前以相同的数据状态结束。有没有一种方法可以让 Xcode 以某种方式保留应用程序状态,并重新运行相同的视图控制器?

如果有一种自动的方法来检测上次启动的屏幕,并在重新编译后重新显示它,那将节省大量开发人员大量时间。

我意识到这样的东西可以定制。就像是: 如果某个调试标志为 ON: - 从 NSUserDefaults 中检索上次使用的控制器的类名,并重新显示它。
这样做的问题是:数据状态和导航状态不会被保留。此外,所有其他调用并依赖于您的控制器的对象状态将不包括在内。这就是为什么我需要一个更通用的解决方案。

【问题讨论】:

  • 您会考虑 UI 测试解决方案吗?
  • 理想情况下,我希望能够调试、使用 Xcode UI 检查器和所有 Xcode 工具。另外我相信 UI 测试工具需要设置一个测试用例,这将比手动使用模拟器获得相同的数据状态所花费的时间开销更大。

标签: objective-c xcode state recompile


【解决方案1】:

如果某个调试标志为 ON: - 从 NSUserDefaults 检索最后使用的控制器的类名,并重新显示它。 这样做的问题是:数据状态和导航状态不会被保留。

但这正是内置状态保存和恢复机制想要解决的问题,不是吗?

https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/PreservingandRestoringState.html

【讨论】:

    【解决方案2】:

    我建议您使用用户界面目标,然后创建一个适用于您的视图控制器的 XCTestCase 并进行练习。使用 Xcode 7 中的新记录按钮开始测试用例。熟悉它用于您可能正在创建的一些动态信息的一些新查询。

    另一种选择是将测试用例的 UI 状态注入到 XCTestCase 的设置函数中的应用程序委托中。然后它将需要自定义逻辑来导航到正确的视图控制器。然后,一旦 Application 委托导航到该 ViewController,您的测试用例就可以只关注它。

    当然,您可以在 UI 测试时使用测试用例和视图控制器中的调试器和断点。通过“编写脚本”,您可以大大减少手动点击设备来测试 ViewCONtroller

    而且你现在有一个测试!希望在您更改某些内容时对您有所帮助

    【讨论】:

      猜你喜欢
      • 2022-01-10
      • 2014-09-30
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-03
      • 1970-01-01
      • 2019-07-22
      相关资源
      最近更新 更多