将函数的槽参数传递给scheduledTimer的Selector

时间:2017-07-13 20:41:32

标签: ios swift timer selector nstimer

所以我按下一个按钮(在一个功能中)时启动一个预定的计时器

self.timer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: Selector(ViewController.update), userInfo: nil, repeats: true)

我想通过选择器中的更新参数数据,因为我需要数据,但它只在函数中可用,但我无法在此函数中声明函数并使用它作为#selector。

理想情况:

func update(data: CMMotionActivity) { some code here }

并且在计时器中而不是选择器而不是ViewController.update,但有点像ViewController.update(data:myAwesomeArray)

1 个答案:

答案 0 :(得分:0)

您可以使用userInfo

self.timer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: Selector(ViewController.update(_:)), userInfo: ["data" : youData], repeats: true)

在你的功能中得到它:

func update(data: Timer) {
   let userInfo = timer.userInfo as Dictionary<String, AnyObject>
   let data = userInfo["data"]
   //use your data
}