2017-07-04 87 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零。