0
以下代码似乎不适用于我。从deinit调用removeFromSuperview()
class SomeSubView: UIView {
deinit {
removeFromSuperview()
}
}
let view = UIView()
var subview: SomeSubView! = SomeSubView()
var subview2: SomeSubView! = SomeSubView()
view.addSubview(subview)
view.addSubview(subview2)
subview = nil
subview = SomeSubView()
view.addSubview(subview)
print(view.subviews) //contains three views, should contain two
我也有一个print()
的DEINIT里面,所以我敢肯定它被调用。在表达subview = nil
之前,我可以拨打subview.removeFromSuperview()
,这很好。
我只是好奇为什么这个限制存在,deinit
里面不能做什么样的东西?我觉得我想要做的事情应该工作...