【问题标题】:SWIFT - NSTimer, pass the user infoSWIFT - NSTimer,传递用户信息
【发布时间】:2016-07-21 10:31:43
【问题描述】:

我试图通过 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 扩展文件中。

我得到的错误是:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[App.VC StartAnim]:无法识别的选择器已发送到实例

【问题讨论】:

    标签: ios swift uiview nstimer


    【解决方案1】:

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

    StartAdmin:
    

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

    #selector(self.StartAdmin(_:))
    

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

    @objc 
    

    在声明之前也是例子

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

    【讨论】:

      猜你喜欢
      • 2015-05-22
      • 1970-01-01
      • 2012-03-20
      • 1970-01-01
      • 1970-01-01
      • 2020-04-05
      • 2016-02-17
      • 2011-12-19
      • 2015-08-14
      相关资源
      最近更新 更多