所以我在按下按钮时启动了排定的计时器(在功能中)

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)

最佳答案

您可以使用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
}

07-26 09:40
查看更多