Ошибка UIButton click не реализует методSignatureForSelector: - проблема впереди Нераспознанный селектор
В Swift при нажатии кнопки приложение вылетает с ошибкой
не реализует методSignatureForSelector: - проблема впереди Непризнанный селектор
В коде мой класс Controller получает ссылку на UIButton и добавляет цель, как показано ниже.
aButton.addTarget(self, action: "pressed:", forControlEvents: UIControlEvents.TouchUpInside)
Сжатая функция определяется как
func pressed(sender:UIButton)
{
println("button pressed")
}
Класс контроллера определяется как
class MyController
{
init()
{
}
// Also here it gets the reference to the UIButton and has pressed function as well.
}
Ответы
Ответ 1
Проблема, я обнаружил, что класс MyController должен наследовать из класса NSObject. Изменение объявления класса в соответствии с фиксированной моей проблемой.
class MyController : NSObject
{
override init() // since it is overriding the NSObject init
{
}
}
Это, вероятно, потому, что NSObject реализует такие методы, как respondsToSelector
. И перед вызовом функции нажата: она пытается проверить, не навешивает ли он инфузу нажатие селектора:. Но поскольку MyController не имеет respondsToSelector
, поэтому он сбой.
Ответ 2
Другой вариант - добавить @objc
в ваше объявление class
.
Я обнаружил, что использование NSTimer
сбоев invocations в противном случае.