У меня есть функция, которая вызывается, когда мое приложение переходит в фоновый режим. Я хотел бы остановить поток, если пользователь снова откроет приложение. Пока ничего не пытаюсь работать.Как остановить этот NSThread?
Вот мой код до сих пор:
class Neversleep {
private static var callback : (()->Void)?
private static var thread: NSThread?
static func start(callback:()->Void) {
self.callback = callback
Neversleep.thread = NSThread(target: self, selector: #selector(Neversleep.task), object: nil)
Neversleep.thread?.start()
}
static func stop() {
print("NEVERSLEEP:STOP")
Neversleep.thread?.cancel()
}
@objc static func task() {
while (true)
{
sleep(3);
print("we are still running!")
callback?()
}
}
}
Я называю Neversleep.start() из метода DidEnterBackground приложение делегата.
Я вызываю Neversleep.stop() из willEnterForeground ... но это не останавливает поток.
Уверен, что мне не хватает чего-то очевидного здесь. Но что?
Это работало как шарм. Огромное спасибо. – bflora2