var faderTimer: NSTimer?
override func viewDidLoad() {
super.viewDidLoad()
self.faderTimer = NSTimer.scheduledTimerWithTimeInterval(self.fadeTime, target: self, selector: Selector("fadeBackground"), userInfo: nil, repeats: true)
}
我需要在控制器定義之前使這個定時器無效。如何在viewWillDisappear中不執行NSTimer而使其失效/取消?
deinit {
//never gets called
if let timer = self.faderTimer {
self.faderTimer!.invalidate()
self.faderTimer = nil
}
}
但是,我不能將它粘在deinit()中。看起來我必須在viewWillDisappear
內使它無效。但是,我不想這樣做,因爲它會擾亂背景切換。 (從後臺返回不會調用viewWillAppear,所以我必須使用通知來啓動計時器,這是一個巨大的痛苦。)我寧願在viewDidLoad上啓動計時器,並在deinit()上停止它。
對不起,你能澄清一下'viewWillDisappear'中的錯誤嗎?這不僅僅是因爲用戶背景的應用程序,所以有什麼問題? – matt