override func viewDidLoad() {
super.viewDidLoad()
worktask = DispatchWorkItem {
for i in 1…4 {
sleep(2)
DispatchQueue.main.async {
// run code
fucntionAlert()
}
}
}
DispatchQueue.global().async(execute: worktask)
}
func fucntionAlert(){
let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) {
DispatchQueue.global().sync {
self.worktask.cancel()
}
}
}
@IBAction func action(_sender: Any){
DispatchQueue.global().sync {
self.worktask.cancel()
}
}
Я пытаюсь запустить dispatchqueue 4 раза, каждый запускается через 2 секунды. Как таймер. Я не хочу использовать таймер, потому что у меня уже работает таймер в приложении uiapplication.
Теперь я пытаюсь остановить диспетчерскую очередь при переходе к следующему контроллеру представления или нажатии кнопки ОК. Это все еще работает и никогда не останавливается. Любое решение?
Мне нужно остановить при переходе к следующему контроллеру представления и запускается снова при возврате к myviewcontroller. спасибо!