为什么当我用Xcode测试我的控制器时,一切都很好,但是没有调用deinit方法。这是正确的吗?
虽然应用程序正常工作,但它很好,但不适用于UITest目标。
对于复杂的结构模拟器一遍又一遍地分配更多的对象.根本不要把它放掉。所以,在速度较慢的机器上,应用程序有时会在没有任何理由的情况下退出.而测试也无法完成。
使用Xcode 8,iOS 10,macOS塞拉利昂.
发布于 2016-10-18 01:20:29
我无法在没有看到测试代码样本的情况下明确地回答你的问题,然而,你的情况让我对一些事情产生了怀疑。
基本上,该应用程序正在为您运行的每个测试创建新的进程。代码中某个地方的内存泄漏将是要研究的第一个问题。如果您正在泄漏内存,测试框架会产生大量的进程,这可能会导致崩溃,并允许该问题在正常运行期间在雷达下运行。
另外,除非您正在通过测试类中的下拉函数显式地初始化控制器,否则该过程通常在测试结束时就会被终止。如果您想要测试您的重新初始化,我建议显式地触发测试中的删除,以测试您的内存分配行为。此外,Xcode分析特性在这里可能对您有用。
如果你可以发布一个测试代码的样本,这将是一个很大的帮助,我会相应地编辑我的答案。
发布于 2016-10-19 04:45:55
确保deinit不是empty.if,它是空的,那么它永远不会work.put,无论您需要什么来释放,并检查它是否工作。
我的建议
better to use dealloc method rather than using deinit.https://stackoverflow.com/questions/32296701
复制相似问题