将引用/指针传递给使用NSTimer调用的方法?

时间:2014-08-04 23:00:27

标签: swift nstimer

我有一个计时器调用一个方法,需要有两个引用其他变量(重力和玩家)

func update(inout gravity: CGVector, inout player: Player) {  
    timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: Selector("myMethod"), userInfo: gravity, repeats: true) // Here I get the error: extra argument 'selector' in call
    }

func myMethod() {  
    println(timer.userInfo.gravity.dx)
}

虽然上面的内容适用于内容或常规变量,但当我尝试传递一个指针或一个inout变量时,我会得到错误"额外的参数'选择器'在电话"。如何将对变量的引用传递给myMethod?

1 个答案:

答案 0 :(得分:0)

不使用选择器尝试:

timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "myMethod", userInfo: gravity, repeats: true)

这是适合我的格式。此外,在我的测试中,如果您将gravity作为userInfo传递,将gravity作为memory属性传递,则可以像这样访问它:

func myMethod() {  
    println(timer.userInfo.memory)
}