Есть ли способ автоматически вызывать метод протокола после соответствия в Swift? - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь вызвать метод расширения протокола, если класс / структура соответствует протоколу.

Основная причина - не писать везде один и тот же код для выполнения простых операций регистрации / деинсталляции.

protocol LanguageChangeDipatcher {
    func postLanguageChangeNotification()
}

extension LanguageChangeDipatcher {
    func postLanguageChangeNotification() {
        NotificationCenter.default.post(name:.languageChange, object: nil)
    }
}

@objc protocol LanguageChangeObserver: NSObjectProtocol {
    func onLanguageChange()
}

extension LanguageChangeObserver  {
    func addLanguageChangeObserver() {
        NotificationCenter.default.addObserver(self, selector: #selector(onLanguageChange), name: .languageChange, object: nil)
    }
}
class SecondViewController: UIViewController, LanguageChangeObserver {


}

Я ожидаю, что addLanguageChangeObserver будет вызываться автоматически, если какой-либо класс или структура соответствует протоколу.Возможно ли это на языке программирования Swift?

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