ios - 用于在我的 Swift 应用程序中从 NSTimer 调用函数的无法识别的选择器

标签 ios swift nstimer

<分区>

我应该如何在 swift 中声明一个函数,以便我可以使用 NSTimer。我目前收到错误:

'-[MyClass.MyViewController displayOfflineTimerMessage]: 无法识别的选择器

我尝试在我的函数前面添加 @objc 和 dynamic 但都不起作用。

   func sendOfflineSystemMessageIfNeccesary(username:String) {

        var debounceTimer = offlineNotificationDebounceList["username"];
        if let timer = debounceTimer {
            //todo: log warning message since we should never get here
            timer.invalidate()
        }

        debounceTimer = NSTimer(timeInterval: debounceTimeInSeconds, target: self, selector: Selector("displayOfflineTimerMessage"), userInfo: username, repeats: false)
        NSRunLoop.currentRunLoop().addTimer(debounceTimer!, forMode: "NSDefaultRunLoopMode")

    }

    @objc func displayOfflineTimerMessage(timer:NSTimer)
    {
        if let username:String = timer.userInfo as? String {
            offlineNotificationDebounceList.removeValueForKey(username)
            sendConnectionMessage(username, msg: username + " has left")
        }

    }

最佳答案

你可以只使用这条线作为

debounceTimer = NSTimer(timeInterval: debounceTimeInSeconds, target: self, selector: "displayOfflineTimerMessage:", userInfo: username, repeats: false)

关于ios - 用于在我的 Swift 应用程序中从 NSTimer 调用函数的无法识别的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31637893/

相关文章:

ios, webkit-overflow-scrolling : touch recognition on scrolling list is broken

ios - 如何在应用程序委托(delegate)中更改应用程序语言?

swift - 使用 Image Name 属性的枚举值初始化 spritekit 对象

ios - dispatch_after 递归 vs NSTimer scheduledtimerwithtimeinterval

ios - ios 7中未声明的选择器警告

ios - 计时器被触发两次但未被取消

ios - 如何使用 Alamofire (Swift) 获取数组内的嵌套数组

ios - 如何调用原生IOS中的Method向Flutter发送数据?

ios - 如何通过单击主屏幕上的图标来获取 iOS 应用程序启动事件?

swift - 如何在不设置变量的情况下使计时器无效