2016-06-29 1 views
1

Не удалось запустить функцию в другом классе в качестве селектора для NStimer.Быстрая функция доступа nstimer другой класс

class VariClass 
{ 
    func updateUILoop() 
    { 
     print("updating UI") 
    } 
} 

В приложение делегата у меня есть

let values = VariClass() 

В AppDelegate у меня есть.

let timer = NSTimer(fireDate: NSDate(), interval: 5, target: self, selector: #selector(values.updateUILoop), userInfo: nil, repeats: true) 

Функция работает отлично, если я запускаю ее вручную.

getvalues.updateUILoop() 

ответ

2

Вы хотите NSTimer вызвать func updateUILoop на values объекта, поэтому цель для обратного вызова таймера должен быть values, не self:

let timer = NSTimer(fireDate: NSDate(), interval: 5, target: self.values, selector: #selector(VariClass.updateUILoop), userInfo: nil, repeats: true) 
+0

я получаю «Использование неразрешенного идентификатора 'updateUILoop' – nyitguy

+0

@nyitguy Пожалуйста, попробуйте обновленный селектор. – dasblinkenlight

+0

Я получаю эту ошибку. «Аргумент« #selector »относится к методу, который не подвергается Objective-C». – nyitguy

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