Ios Xcode NSTimer错误:无法识别的选择器已发送到类
我有一个名为Util.swift的文件,其中包含以下内容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
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)
。您是在类本身而不是在其实例上调用选择器。所以使用类函数作为选择器是可行的。