2017-07-04 84 views
0

我要徹底消除對一個UIView的參考,當它被竊聽(它是一個子視圖。斯威夫特刪除參考的UIView

@IBAction private func handleTap(_ sender: UITapGestureRecognizer) { 
    if (delegate != nil) { 
     delegate?.imageWasTapped(imageView.image!, photoURL: photoURL!) 
     self.removeFromSuperview() 
    } 
    print ("tap") 
} 

removeFromSuperview()似乎不足以完全刪除實例(從什麼我讀過),所以想

self = nil 

但當然自我是不可改變的。

我試圖值傳遞給我的上海華作爲一個INOUT參數,但是當然是自我仍然不變。

 delegate?.imageWasTapped(imageView.image!, photoURL: photoURL!, imageView: self) 

是removeFromSumerview()足以從內存中釋放UIView,或者如何最好地完成?

+0

當您使用ARC時,將其留給系統來管理您的內存。 – Adeel

回答

4

您可以參照那個弱點UIView。然後將刪除ARC後通過使用removeFromSuperview零。