带有@objc 的 unreconized 选择器的实例错误

instance error from unreconized selector with @objc

当我 运行 我的应用程序出现此错误时

Nick[66720:3658939] -[_SwiftValue function1]: 无法识别的选择器发送到实例

我试着搬出 class 它说 只有协议成员可以在那里

import Cocoa

class mymainclass: NSObject, NSApplicationDelegate{


var mytimer = Timer.scheduledTimer(timeInterval: 0.2, target: self, selector: #selector(function1), userInfo: nil, repeats: true)

func applicationDockMenu(_ sender: NSApplication) -> NSMenu? {
    return dockMenu
}



  @objc func function1(){
    print(“function1 test”)
 }


}

您正在尝试在 class 级别上使用 self,这样它就不会引用您创建的 class 实例。

相反,您可以在创建 class 实例后创建计时器。 在 class 构造函数中,self 将引用您所期望的

class Mymainclass: NSObject, NSApplicationDelegate{
    var mytimer: Timer?

    override init() {
        super.init()
        self.mytimer = Timer.scheduledTimer(timeInterval: 0.2, target: self, selector: #selector(function1), userInfo: nil, repeats: true)
    }

    @objc func function1(){
        print("function1 test")
    }   
}

注意: Class 名字以大写字母开头