选择器 return 在 Swift 中有一个值?
Have a selector return a value in Swift?
我想知道是否可以使选择器 return 成为一个值,然后将此值设置为某个变量,例如,如果按下了一个按钮。
这是我的意思的一个例子:
let test = MyTapGesture(target: self, action: #selector(sampleFunction))
//somehow, here, I wanted the selector to return the value 5, and I can access it in this code
cell.button.addGestureRecognizer(test)
选择器的代码如下所示:
@objc sampleFunction() -> Int{
//do some stuff that's important when the button is pressed
return 5
}
这可能吗?
谢谢!
的一般答案有一个选择器return一个值在Swift?
是的,一个选择器只是一个特定的现有方法的键,所以如果方法return是一个值,你可能会得到return调用选择器的 ed 值。
但是,这并不意味着您可以 return 来自操作方法的值。
针对您的案例的具体答案
不,操作方法是从 iOS 内部调用的,并且 iOS 忽略 returned 值。 (在某些情况下,调用具有 return 值的方法会使您的应用程序崩溃。)
如果您需要设置cell.button.tag = 5
,您可能需要在您的sampleFunction
中明确写下:
@objc func sampleFunction(_ gestureRecognizer: MyTapGesture) {
let button = gestureRecognizer.view as! UIButton
button.tag = 5
//...
}
我想知道是否可以使选择器 return 成为一个值,然后将此值设置为某个变量,例如,如果按下了一个按钮。
这是我的意思的一个例子:
let test = MyTapGesture(target: self, action: #selector(sampleFunction))
//somehow, here, I wanted the selector to return the value 5, and I can access it in this code
cell.button.addGestureRecognizer(test)
选择器的代码如下所示:
@objc sampleFunction() -> Int{
//do some stuff that's important when the button is pressed
return 5
}
这可能吗?
谢谢!
的一般答案有一个选择器return一个值在Swift?
是的,一个选择器只是一个特定的现有方法的键,所以如果方法return是一个值,你可能会得到return调用选择器的 ed 值。
但是,这并不意味着您可以 return 来自操作方法的值。
针对您的案例的具体答案
不,操作方法是从 iOS 内部调用的,并且 iOS 忽略 returned 值。 (在某些情况下,调用具有 return 值的方法会使您的应用程序崩溃。)
如果您需要设置cell.button.tag = 5
,您可能需要在您的sampleFunction
中明确写下:
@objc func sampleFunction(_ gestureRecognizer: MyTapGesture) {
let button = gestureRecognizer.view as! UIButton
button.tag = 5
//...
}