nextResponder в Свифт 3
В Swift 2 этот код работает нормально
override func nextResponder() -> UIResponder? {
// it's called when user make any touch event
return super.nextResponder()
}
это в основном помогает получать уведомления о любом взаимодействии с пользователем.
в Swift 3 теперь это переменная, а не функция, и я даже не могу наблюдать это с помощью didSet.
так как использовать код выше в Swift 3
2 ответа
Вы можете переопределить переменную:
override var next: UIResponder? {
get {
// do something
return super.next
}
}
Поскольку переменная определена как переменная только для чтения, реализация didSet
не имеет смысла. Вы не должны устанавливать эту переменную. Вместо этого разные подклассы UIResponder
может переопределить переменную и вернуть разные значения. Базовый класс возвращает nil
,
Примечание: переменная называется next
в Свифте 3 и nextResponder
в Objective-C и более ранних версиях Swift. Это можно увидеть в документации, когда вы переключаетесь между Swift и Objective-C в правом столбце.
nextResponder
заменяется next
в Swift 3
, Его новая декларация:
var next: UIResponder? { get }