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
裏面不能做什麼樣的東西?我覺得我想要做的事情應該工作...