Ответ 1
Что я делаю (на обоих языках), чтобы сделать мой таймер слабым. Быстро это было бы слабым факультативным.
weak var myTimer: NSTimer?
Затем я создаю таймер с
myTimer = NSTimer.scheduledTimerWithTimeInterval(1,
target: self,
selector: "timerFired:",
userInfo: nil,
repeats: false)
И затем вы можете использовать
if timer == nil
чтобы узнать, работает ли он.
Чтобы остановить таймер, вы просто вызываете
myTimer?.invalidate()
В Objective-C это будет
[myTimer invalidate];
Это работает в Objective-C, потому что отправка сообщений в нулевые указатели действительна и просто ничего не делает.
Если вы не хотите использовать слабый необязательный параметр, вы можете запросить таймер, чтобы убедиться, что он работает, посмотрев на него свойство valid
.