2014-12-28 6 views
-2

Я пытаюсь создать простое приложение секундомера, где метка timer увеличивается при нажатии кнопки startButton. Это то, что у меня есть:Дополнительный аргумент 'selector' при вызове

@IBOutlet weak var timer: UILabel! 

    @IBAction func startButton(sender: AnyObject) { 

     timer = NSTimer.scheduledTimerWithTimeInterval(0.0025, target: self, selector: Selector("result"), userInfo: nil, repeats: true) 

    } 


var count = 0 

func result() { 
    count++ 
    timer.text=String(count) 
    } 

Я получаю ошибку «Extra аргумент„селектор“в вызове», но не может тренировки синтаксис, чтобы сделать это правильно.

+0

Возможный дубликат [Использование NSTimer в Swift] (http://stackoverflow.com/questions/24369602/using-an-nstimer-in-swift) – Abizern

ответ

2

Быстрое сообщение об ошибке немного не хватает. Он должен был сказать что-то вроде «NSTimer не конвертируется в UILabel». Вы назначаете созданный вами таймер IBOutlettimer, который является UILabel. Таймер - NSTimer. Просто назначьте его другой переменной, когда вы ее создадите, и все будет в порядке.

@IBAction func startButton(sender: AnyObject) { 

    let myTimer = NSTimer.scheduledTimerWithTimeInterval(0.0025, target: self, selector: "result", userInfo: nil, repeats: true) 

} 

Как ярлык, вы можете просто использовать строку в качестве селектора, так Selector("result") может быть заменен только "result".

+1

Добро пожаловать в StackOverflow. Если вы обнаружили, что этот ответ затронул вашу проблему, пожалуйста, примите ответ, нажав на полый флажок рядом с ответом, чтобы повернуть галочку в зеленый цвет. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 – vacawama

+1

Жаль, что иногда кажется, что слишком много, чтобы нажимать виртуальную кнопку из благодарности. .. –

+0

@ ZhouW был новичком в то время. Иногда новички не знают о процессе, поэтому я стараюсь помочь им стать хорошими гражданами. – vacawama

Смежные вопросы