【发布时间】:2016-01-29 23:20:41
【问题描述】:
当使用类类型变量作为函数参数时会发生什么?它是否创建任何对象? 这一点我不是很清楚
func action(gestureRecognizer: UIGestureRecognizer) {
var touchPoint = gestureRecognizer.locationInView(self.map)
}
gestureRecognizer 是一个对象吗?我知道对象是通过以下方式声明的
let gestureRecognizer = UIGestureRecognizer()
请提出建议以清除我的概念。谢谢
更新
override func viewDidLoad() {
super.viewDidLoad()
let uilpgr = UILongPressGestureRecognizer(target: self, action: "action:")
uilpgr.minimumPressDuration = 2
map.addGestureRecognizer(uilpgr)
}
func action(gestureRecognizer: UIGestureRecognizer) {
print("Gesture Recognized")
}
【问题讨论】:
-
不是创建的,是调用者传递的。
let a = A()被创建,然后传递给action(a)。 -
我不清楚。你能解释得更详细一点吗?来电者是谁?
-
无论调用
action(a)都是调用者。在函数被调用之前,参数是创建的,而不是在函数中。