2016-08-28 8 views
-2

У меня есть пользовательский класс «MyTask», который вызывается из других классов, таких как класс «ViewController». Внутри «MyTask» У меня есть функция «startTask», который принимает параметры, необходимые для начала NSTimer выполнить функцию «DoStuff» Однако, когда я использую функцию startTask и установите переключатель для другой функции он выходит из строяНепризнанная ошибка выбора в SWIFT

class MyTask { 
      var timer = NSTimer() 
      var timerInterval = 0.0 
      var target: AnyObject! 
      var selector = Selector() 

      func startTask(time: Double, target target: AnyObject, selector: Selector) { 
       self.timerInterval = time 
       self.target = target 
       self.selector = selector 
       doStuff() 
      } 
func doStuff() { 
//....some code here to run 
//====Crash happens on this line===== 
self.timer = NSTimer.scheduledTimerWithTimeInterval(self.timerInterval, target: self, selector: self.selector, userInfo: nil, repeats: true) 

} 

В моем другом классе вот что я

class ViewController { 
    let mynewClass = MyTask() 
    mynewClass = startTask(2, target: self, selector_: #selector(updateLabel)) 

func updateLabel() { print("") } 
} 

я получаю сообщение об ошибке *** NSForwarding предупреждение: объект 0x7fe90242f6f0 класса 'ABC' не реализует methodSignatureForSelector: - [. а timerAction] - неприятности впереди Непризнанный селектора

Что я делаю неправильно?

+1

Вы должны назвать все свои классы, начиная с прописной буквы –

+0

В дополнение к тому, что сказал @LeoDabus, вы также не должны добавлять «_» к вашим именам параметров. Вместо этого используйте имя нормального параметра. Затем в реализации инициализатора или метода используйте 'self.' для установки свойств с тем же именем, что и параметр, например:' self.target = target' –

+0

Leo, abc - это просто пример. –

ответ

1

Класс, который должен быть целью селектора , должен получить из NSObject. Здесь вы используете функцию Objective-C; вы должны иметь класс, совместимый с Objective-C.

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

  • Нет связанных вопросов^_^