gpt4 book ai didi

ios - 手势: works in this example?如何

转载 作者:可可西里 更新时间:2023-11-01 01:09:20 24 4
gpt4 key购买 nike

let gestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(actionGesture(gesture: )))
self.view.addGestureRecognizer(gestureRecognizer)
}

@objc func actionGesture(gesture: UIPanGestureRecognizer){
....
}

通常我们调用函数 actionGesture(gesture: some value )。但在这个例子中,我们只使用手势:没有值(value)。

最佳答案

在 swift 中,当你调用一个函数时,你会为参数添加值。如果您想将函数存储在变量中或将其传递给另一个函数,您可以使用它的全名,其中包括所有外部参数名称(这有助于消除重载之间的歧义,它来自 objective-c ,其中函数的选择器包括所有参数名称)。为参数添加值没有意义,因为您不是在调用函数,而是在引用函数本身,以便其他人稍后可以调用它(在您的情况下是手势识别器)。如果您查看任何 swift 函数的 apple 文档,就可以了解此命名的工作原理。例如tableView(_:cellForRowAt:) .请注意,即使是未命名的参数 _ 也是方法签名的一部分。

这是一个说明这一点的 Playground (请注意,使用参数名称可确保我们引用的是正确的函数):

import PlaygroundSupport
func multiply () {
print("not implmented")
}
func multiply (_ lhs: Int, by rhs: Int) -> (Int) {
return lhs * rhs
}

var myfunc = multiply(_:by:)

print(myfunc(2, 3))

输出是

6

而不是

未实现

关于ios - 手势: works in this example?如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48994285/

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