Ios Xcode NSTimer错误:无法识别的选择器已发送到类

Ios Xcode NSTimer错误:无法识别的选择器已发送到类,ios,xcode,swift,nstimer,Ios,Xcode,Swift,Nstimer,我有一个名为Util.swift的文件,其中包含以下内容 class foo: NSObject { func sayHello() { print("hello") } } var globalTimer = NSTimer() func startTheTimer() { globalTimer = NSTimer.scheduledTimerWithTimeInterval(2.0, target: foo.self, selector: Se

我有一个名为Util.swift的文件,其中包含以下内容

class foo: NSObject {

    func sayHello() {
        print("hello")
    }
}

var globalTimer = NSTimer()

func startTheTimer() {
    globalTimer = NSTimer.scheduledTimerWithTimeInterval(2.0, target: foo.self, selector: Selector("sayHello"), userInfo: nil, repeats: true)
}
当我在任何ViewController的viewDidLoad中调用startTheTimer()时,我会收到一个错误,上面写着“无法识别的选择器发送到类”。我不知道我在这里做错了什么

class func sayHello() {
    print("hello")
}

请将此设置为类方法。

我已在此处更新了您的代码:

class foo: NSObject {

class func sayHello() {
    print("hello")
}
}

var globalTimer = NSTimer()
func startTheTimer() {
globalTimer = NSTimer.scheduledTimerWithTimeInterval(2.0, target: foo.self, selector: Selector("sayHello"), userInfo: nil, repeats: true)
}

正如MudOnTire所说,将其作为类方法。并将方法签名更改为
sayHello(timer:NSTimer)
。您是在类本身而不是在其实例上调用选择器。所以使用类函数作为选择器是可行的。