Для определенных типов тестов мне нужно, чтобы контроллер представления находился внутри UIWindow.Само окно UIWindow никогда не отображается.У меня проблемы с уничтожением контроллера представления.
Допустим, у нас есть
class MyViewController: UIViewController {
deinit {
print("MyVC bye-bye")
}
}
class MyWindow: UIWindow {
deinit {
print("MyWindow bye-bye")
}
}
Теперь в тестовом наборе я могу создать оба объекта, и они будут освобождены.
class MyTests: XCTestCase {
func test() {
let vc = MyViewController()
let window = MyWindow()
}
}
В выводе консоли я вижу
MyWindow bye-bye
MyVC bye-bye
Но если я добавлю следующую строку в тест, ни один объект не будет уничтожен.
window.addSubview(vc.view)
Само окно можетбыть убранным позже автозапускным бассейном.Но моя главная проблема в том, что контроллер представления не уничтожен.
Я пытался сделать
vc.view.removeFromSuperview()
, но этого недостаточно.