Переопределить в расширении Swift - не может или не должен? - PullRequest
0 голосов
/ 20 марта 2019

Ниже мой фрагмент кода?

extension UISwitch{
    open override func draw(_ rect: CGRect) {
        self.tintColor = UIColor.red
    }
}

Согласно документации Apple, вы не должны переопределять в расширении. Это я поняла. Теперь я не получаю сообщение об ошибке в этом коде, и все переключатели в моем приложении имеют красный цвет оттенка.

Я читал статьи о том, что это работает из-за динамической отправки, поскольку UISwitch является классом, унаследованным NSObject.

Может кто-нибудь помочь мне понять эту концепцию? Почему бы нам не сделать это? Если swift - статическая отправка, как это все еще работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...