Xcode 7+有没有办法在重新编译后保留应用程序状态

时间:2016-02-25 19:14:42

标签: objective-c xcode state recompile

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

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

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

2 个答案:

答案 0 :(得分:2)

  

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

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

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

答案 1 :(得分:1)

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

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

当然,您可以在UI测试时使用测试用例中的调试器和断点以及View Controller。通过“编写脚本”,您可以显着减少手动点击设备以测试ViewCOntroller

你现在还有一个测试!当你改变一些东西时,希望你在路上有所作为