gpt4 book ai didi

ios - addTarget 使用安全吗?

转载 作者:行者123 更新时间:2023-11-28 13:08:52 26 4
gpt4 key购买 nike

我最近对 ​​cellForRowAtIndexPath 中的 UITableViewCell 使用 addTarget() 有点怀疑。我也很想知道从 UITableViewCell 监听按钮事件的最佳实践是什么。

当我发现无法取消注册我添加到位于 UITableViewCell 中的 UIButton 的 addTarget 监听器时,我开始感到困惑:

cellForRowAtIndexPath 的代码:

cell.button.addTarget(self, action: "buttonClicked:", forControlEvents: UIControlEvents.TouchUpInside)

上面的代码向驻留在 UITableViewCell 中的 UIButton 注册了一个监听器,但我看到没有取消注册它们的引用。我不确定这个过程是否是自动的(添加目标机制),我也没有在 Apple 文档中找到任何这样的引用资料(至少我已经搜索过)。

所以,我的问题是,addTarget 用于 UITableViewCell 按钮好用吗?当 View Controller 消失时,它们是否都注销了?

或者,如果我使用 addObserver 会更好吗?

override func viewDidLoad()
{
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "onCellButtonPressed:", name: "cellButtonPressed", object: nil)
}

func onCellButtonPressed(notification:NSNotification)
{
if let sender = notification.object as? UIButton
{
...
}
}

在 UITableViewCell 代码中:

@IBAction func onButtonPressed(sender: AnyObject)
{
NSNotificationCenter.defaultCenter().postNotificationName("cellButtonPressed", object: sender)
}

对此有任何建议,我们将不胜感激。

最佳答案

传递给 addTarget 的目标不会保留。使用安全;您不需要“注销”(或删除)目标。这是控制操作(如按下按钮)的标准机制,您应该使用它(相对于通知)。

关于ios - addTarget 使用安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31980515/

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