gpt4 book ai didi

swift - 将选择器用作 addTarget 的变量

转载 作者:行者123 更新时间:2023-11-28 13:19:54 27 4
gpt4 key购买 nike

我在 Swift 中遇到选择器问题。我有以下代码行:

let actionTarget="onPress:"
button.addTarget(self, action: Selector(actionTarget), forControlEvents: .TouchUpInside)

但这会产生错误:

! Could not find member 'TouchUpInside'

但是如果我尝试这个错误就会消失:

button.addTarget(self, action "onPress:", forControlEvents: .TouchUpInside)

所以我假设不是 .TouchUpInside 导致了我的问题,而是缺少字符串文字导致了我的问题。

我也试过:

let actionTarget="onPress:" as Selector
button.addTarget(self, action: actionTarget, forControlEvents: .TouchUpInside)

但这也没有用。

如何为操作提供不是字符串文字而是存储在变量中的选择器?

最佳答案

button.addTarget(self, action: "onPress:", forControlEvents: .TouchUpInside)

这是正确的——您不需要像 Selector() 这样的特殊操作来使用选择器,只需使用字符串即可。

如果你的选择器存储在一个变量中,那么使用这个:

let selector = "onPress:"
button.addTarget(self, action: Selector(selector), forControlEvents: .TouchUpInside)

as 在这里不正确的原因是因为它用于从父类(super class)转换为子类。例如,let p:UIView = UIButton(...)p as UIButton 可以工作,因为 p 实际上是一个 UIButton 实例。在这种情况下,使用 Selector( ... ) 调用适当的 Selector 构造函数并从您的 String 实例化一个新的 Selector。

关于swift - 将选择器用作 addTarget 的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26799930/

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