迅速删除对UIView的引用

ste*_*tis 1 memory uiview ios swift

我想在点击时完全删除对UIView的引用(它是一个子视图。

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

removeFromSuperview()似乎不足以完全删除实例(根据我的阅读),因此想

self = nil
Run Code Online (Sandbox Code Playgroud)

但是自我当然是一成不变的。

我试图将值作为inout参数传递给我的超级视图,但是self仍然是不变的。

        delegate?.imageWasTapped(imageView.image!, photoURL: photoURL!, imageView: self)
Run Code Online (Sandbox Code Playgroud)

是否足以从内存中取消分配UIView的removeFromSumerview(),或如何做到最好?

tul*_*dev 5

您可以对此弱引用UIView。然后,在UIView使用删除ARC后,它将对ARC为零removeFromSuperview