SWIFT - NSTimer,传递用户信息

SWIFT - NSTimer, pass the user info

我正在尝试通过 NSTimer.scheduledTimerWithTimeInterval()

传递 UIView()

这是一个代码:

 _ = NSTimer.scheduledTimerWithTimeInterval((Getsome("Adur") as! Double * 3.0), target: self, selector: "StartAnim", userInfo: ["vie" : bgview as UIView], repeats: true)


func StartAnim(timer: NSTimer)
{
    let userInfo = timer.userInfo as! Dictionary<String, UIView>
    GR(userInfo["vie"]!)
}

NSTimer 操作正在另一个内部函数中发生

GR(vie: UIVIew) 是私有函数

所有这些函数都在单独的 UIVIewController 扩展文件中。

我得到的错误是:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[App.VC StartAnim]: unrecognized selector sent to instance

如果 StartAdmin 接受一个参数,它应该这样调用:

StartAdmin:

此外,如果您使用的是 Swift 2.2,则应使用新的#selector 方法:

#selector(self.StartAdmin(_:))

如果函数是私有的,则需要添加

@objc 

在声明之前,示例

@objc private func someFunc(parameter: AnyObject) { }