2015-11-29 1 views
0

У меня возникли проблемы с моим приложением. Сообщение Thread 1: Сигнал SIGABRT продолжает появляться, когда я нажимаю UIButton.Непризнанная ошибка выбора при нажатии кнопки

Вот мой код:

import UIKit 

class ViewController: UIViewController { 
@IBOutlet var instructions: UILabel! 


@IBOutlet var lockStatus: UIImageView! 

@IBAction func hackButton(sender: AnyObject) { 

    let timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "update", userInfo: nil, repeats: false) 


     while(timer == 1){instructions.text = "loading"} 
     while(timer == 2){instructions.text = "loading."} 
    while(timer == 3) {instructions.text = "loading.."} 
     while(timer == 4){instructions.text = "loading..."} 
     while(timer == 5) {instructions.text = "hack successful!" 
      lockStatus.image = UIImage(named: "unlocked.png") 
      timer.invalidate() 

    } 

    } 



override func viewDidLoad() { 

    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


} 

Я проверил отладчик, и он продолжает говорить, что я послал неопознанный селектор послал к экземпляру 0x7fa7baebc4c0. Может кто-нибудь помочь мне понять, что это значит?

+0

Ни одна из этих циклов 'while' никогда не будет работать. – rmaddy

+0

И должны ли они когда-либо запускаться, они никогда не перестанут работать :-) – gnasher729

ответ

1

Вы пытаетесь использовать метод, называемый «обновление», когда вы создаете свой таймер, но ваш код (по крайней мере, часть, которую вы поделили) НЕ имеет функции обновления.

@IBAction func hackButton(sender: AnyObject) { 
    let timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "update", userInfo: nil, repeats: false) 
} 

func update() { // do your updates here 
} 
1

Это потому, что timer == 1 ничего не значит. Обновление функции вызывается таймером, и оттуда вы можете держать счетчик и увеличивать его.

+1

Причиной аварии является отсутствие функции 'update', но это также важный момент. – vacawama