【发布时间】:2023-03-13 02:39:01
【问题描述】:
我想在不继承自 UIViewVontroller 的类中使用 NSTimer。我有 2 个文件:一个 ViewController 和一个 TimerClass :
视图控制器:
import UIKit
class ViewController: UIViewController {
var timerClass = TimerClass()
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(animated: Bool) {
timerClass.launchTimer()
}
}
定时器类:
import Foundation
class TimerClass {
var timer = NSTimer()
init(){}
func launchTimer(){
var timer = NSTimer.scheduledTimerWithTimeInterval(2, target: self, selector: "timerEnd", userInfo: nil, repeats: true)
}
func timerEnd(){
println("That worked")
}
}
当我启动该应用程序时,我遇到了崩溃:
2015-01-12 19:48:24.322 Timer_TEST[5829:185651] *** NSForwarding: 警告: 'Timer_TEST.TimerClass' 类的对象 0x7fbc3be20710 未实现 methodSignatureForSelector: -- 麻烦 无法识别的选择器 -[Timer_TEST.supportFile timerEnd]
有什么想法吗?
谢谢
【问题讨论】:
-
我对 Swift 知之甚少,但它要求提供一种方法,并且没有在您的自定义类上实现...您可以尝试这样做吗?
-
你不应该在函数
launchTimer中使用var timer,而应该只使用timer,因为你想访问该属性,对吧?