为什么当我在
Xcode中测试我的控制器时一切都很好,但是没有
调用deinit
方法.这是对的吗?
虽然应用程序正常工作,但它很好,但不适用于UITest目标.
对于复杂的结构,模拟器会一遍又一遍地分配更多的对象,并且……根本不需要解除分配.因此,在较慢的机器上,应用程序通常会在没有任何理由的情况下退出……并且无法完成测试.
使用Xcode 8,iOS 10,macOS Sierra.
如果没有看到测试
代码的样本,我无法明确地回答你的问题,但是,你的情况让我怀疑几件事情.
基本上发生的事情是应用程序正在为您运行的每个测试创建新进程.代码内部某处的内存泄漏将是第一个需要调查的问题.如果你正在泄漏内存,那么启动一系列进程的测试框架可能会导致崩溃,并允许该问题在正常运行期间在雷达下飞行.
此外,除非您通过测试类中的拆卸功能显式地取消初始化控制器,否则通常在测试结束时才会终止该过程.如果您想测试重新初始化,我建议在测试中明确触发拆除以测试您的内存分配行为.此外,Xcode Analyze功能可能对您有用.
如果您可以发布测试代码的样本,这将是一个很好的帮助,我将相应地编辑我的答案.