#ios #swift #xcode #timer #uiimageview
#iOS #swift #xcode #таймер #uiimageview
Вопрос:
Я создаю приложение, которое включает в себя изменение UIImageViews на каждую секунду / шаг с помощью 4-шагового таймера обратного отсчета. Я получаю ошибку EXC_BAD_ACCESS, когда моя программа пытается выполнить таймер:
func startTimer(slider_Value: Float, coin: Int){
let delay = Double(slider_Value/5)
var i = 1
timer = Timer.scheduledTimer(withTimeInterval: delay, repeats: true){(timer) in
if i>4{
timer.invalidate()
}else{
switch(i){
case 1:
self.lowerTimer.image = UIImage(named: "P1Timer1")
self.upperTimer.image = UIImage(named: "P2Timer1")
i = i 1
case 2:
self.lowerTimer.image = UIImage(named: "P1Timer2")
self.upperTimer.image = UIImage(named: "P2Timer2")
i = i 1
case 3:
self.lowerTimer.image = UIImage(named: "Timer3")
self.upperTimer.image = UIImage(named: "Timer3")
i = i 1
case 4:
self.logo.image = UIImage(named: "Timer4_Logo")
i = i 1
default:
self.lowerTimer.image = UIImage(named: "Timer0")
self.upperTimer.image = UIImage(named: "Timer0")
self.logo.image = UIImage(named: "SwipeIsh_Logo")
i = i 1
}
}
}
Не совсем уверен, почему этот сбой происходит при запуске приложения. Где XCode сообщает мне, что приложение выходит из строя при выполнении таймера (я также настроил «var timer: таймер?» намного раньше в программе). У кого-нибудь есть идеи, почему?
Комментарии:
1. Какая строка выдает исключение? Вы установили точку останова при закрытии таймера и выполнили переход, чтобы посмотреть, что происходит?
2. @Paulw11 Это происходит в третьей строке внутри функции («timer = Timer.scheduledTimer …») В нем говорится, что сбой происходит в потоке 1, и я не уверен, что это значит?
3. Если вы добавляете точку останова в строку
if I>4 {
, останавливается ли она на этой строке? Можете ли вы затем пошагово выполнить код? Подключили ли вы выходы для просмотра изображений к раскадровке?