2014-10-30 5 views
0

У меня есть функция, которая принимает целое число, но я хотел бы использовать его в качестве селектора и передать ему параметр.Xcode, Swift - Как использовать функцию, которая принимает параметр как селектор

NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "addAmount", userInfo: nil, repeats: true) 

func addAmount(amount: Int) { 

    money += amount 


} 
+0

... и правильный ответ такой: http://stackoverflow.com/a/26359761/1187415. –

ответ

1

Согласно NSTimer documentation:

Селектор должен иметь следующую подпись: timerFireMethod: (в том числе толстой кишки, чтобы указать, что метод принимает аргумент). Таймер передает себя в качестве аргумента, что метод будет принять следующую закономерность:

- (void)timerFireMethod:(NSTimer *)timer

Таким образом, вы можете написать функцию с этой подписью, а затем вызвать вашу addAmount функции внутри него.

func timerFireMethod(timer: NSTimer) { 
    addAmount(SOME_AMOUNT) 
} 

Затем график таймер с

NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "timerFireMethod:", userInfo: nil, repeats: true) 
+0

Thnx много, что сработало! – Abdou023

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