gpt4 book ai didi

ios - 在调用 UITapGestureRecognizer 函数之前取消初始化

转载 作者:行者123 更新时间:2023-11-28 09:18:39 25 4
gpt4 key购买 nike

我正在为一个应用程序构建一个自定义对话框,我想在其中使用当用户点击某些东西时调用的闭包,有点像这样:

var modal = ModalDialog(title: "modal title", buttonClick: { () -> Void in
println("clicked")
})

modal.show()

所以我创建了一个名为 ModalDialog 的类,其中我有一个像这样的 UITapGestureRecognizer:

var modalTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("buttonClickAction:"))
modalView.addGestureRecognizer(modalTap)

我的问题是,由于 ARC,当点击被实际识别并尝试调用 buttonClickAction: 时,该类已经被取消初始化并且应用程序崩溃了。

在我明确告诉它这样做之前,我将如何防止 ARC 取消初始化模态?

最佳答案

在 View Controller 中保留模态对话框的强引用。

    var dialog : ModalDialog

func show {
// Keep strong reference dialog by property of your view controller
self.dialog = ModalDialog(title: "modal title", buttonClick: { () -> Void in
println("clicked")
})
self.dialog.show()
}

关于ios - 在调用 UITapGestureRecognizer 函数之前取消初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26291075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com