2016-11-18 26 views
1

в Swift 2 этот код работает отличноnextResponder в Swift 3

override func nextResponder() -> UIResponder? { 
    // it's called when user make any touch event 
    return super.nextResponder() 
} 

это в основном помогает получить уведомление о любом взаимодействии с пользователем.

в Swift 3 теперь это переменная, а не функция, и я не могу даже наблюдать за ней с помощью didSet.

так, как использовать код, указанный выше в Swift 3

ответ

4

Вы можете переопределить переменную:

override var next: UIResponder? { 
    get { 
     // do something 
     return super.next 
    } 
} 

Поскольку переменная определяется как доступная только для чтения переменной, реализации didSet не имеет смысла , Вы не должны устанавливать эту переменную. Вместо этого различные подклассы UIResponder могут переопределять переменную и возвращать разные значения. Базовый класс возвращает nil.

Примечание: переменная называется next в Swift 3 и nextResponder в объективах-C и более ранних версиях Swift. Это можно увидеть в documentation при переключении между Swift и Objective-C в правой колонке.

0

nextResponder заменен на next в Swift 3. Его новая декларация:

var next: UIResponder? { get } 

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

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