ios - 在 Swift 中将参数传递给 NSTimer 调用的方法

标签 ios xcode swift nstimer

我正在尝试将参数传递给代码中 NSTimer 调用的方法。它正在抛出异常。我就是这样做的。 Circle 是我的自定义类。

    var circle = Circle()
    var timer = NSTimer.scheduledTimerWithInterval(1.0, target: self, selector: animate, userInfo: circle, repeats: true)

下面是正在调用的方法

    func animate(circle: Circle) -> Void{
      //do stuff with circle
    }

注意:该方法与被调用的方法位于同一个类中。所以我相信我已经正确设定了目标。

最佳答案

NSTimer 一起使用的选择器将传递 NSTimer 对象,因为它是唯一的参数。将圆形对象作为 userInfo 放入其中,您可以在计时器触发时将其提取。

var circle = Circle()
var timer = NSTimer.scheduledTimerWithInterval(1.0, target: self, selector: "animate:", userInfo: circle, repeats: true)

func animate(timer:NSTimer){
  var circle = timer.userInfo as Circle
  //do stuff with circle
}

关于ios - 在 Swift 中将参数传递给 NSTimer 调用的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54824056/

相关文章:

ios - 我如何在 iOS Swift4 中创建这个圆形?

iOS 本地化(在应用程序中设置)

c++ - xCode MongoDB Exec 访问错误

swift - 未设置可选 MutableProperty 的 Reactive Swift 绑定(bind)?

ios - 创建水平滚动菜单

ios - 火力基地/swift : retrieve value data

ios - 无法使用 iOS Estimote Indoor SDK 手动创建位置

ios - 检查随机操作的结果?

c++ - boost::asio 暂停时抛出异常

ios - 我可以在 WatchKit 应用程序中从 iOS 应用程序继承用户定义的环境变量吗?