ios - DispatchQueue not working in while loop -
edit: once restarted computer , tried simulator agian terminal displayed message, terminal has detected system running low on swap space. scrollback buffers may automatically timmed conserve swap space. not sure make of message.
prior posting question wanted ask method display 3 successive images. settled on
dispatchqueue.main.asyncafter(deadline: .now() + 3) { self.icon1.ishidden = false } // display image after 3 sec
i used method of delaying the execution of code showing , hiding images changing length of delay.
this works fine when "start" button pressed when tried create while loop, simulator freezes when press start button
here code:
@ibaction func start(_ sender: any) { var x = int(0) repeat { dispatchqueue.main.asyncafter(deadline: .now() + stepperval.value/4) { self.icon1.ishidden = false } // stepperval current value of uistepper dispatchqueue.main.asyncafter(deadline: .now() + stepperval.value/4*2) { self.icon2.ishidden = false } dispatchqueue.main.asyncafter(deadline: .now() + stepperval.value/4*3) { self.icon3.ishidden = false } dispatchqueue.main.asyncafter(deadline: .now() + stepperval.value) { self.icon1.ishidden = true self.icon2.ishidden = true self.icon3.ishidden = true self.direction.ishidden = false self.direction.image = self.derection[int(arc4random_uniform(4))] } dispatchqueue.main.asyncafter(deadline: .now() + stepperval.value*2) { self.direction.ishidden = true x = x+1 } } while x < int(4) //loop 4 times }
once start button pressed icon1,2,3 supposed appear eatch image after certian inteval, hide once again followed image 'direction' appearing. loop 4 times.
Comments
Post a Comment