Расширение протокола по протоколу ObjC
У меня есть протокол Objective C, который используется в основном объектами C и одним или двумя объектами Swift.
Я хотел бы расширить протокол в Swift и добавить 2 функции. Один для регистрации уведомления, а другой для обработки уведомления.
Если я добавлю эти
func registerForPresetLoadedNotification() {
NSNotificationCenter.defaultCenter().addObserver(self as AnyObject,
selector: #selector(presetLoaded(_:)),
name: kPresetLoadedNotificationName,
object: nil)
}
func presetLoaded(notification: NSNotification) {
}
Я получаю ошибку на #selector, которая говоритArgument of '#selector' refers to a method that is not exposed to Objective-C
Если я тогда отмечу presetLoaded как@objc
Я получаю ошибку, которая говорит@objc can only be used with members of classes, @objc protocols, and concrete extensions of classes
Я также не могу пометить расширение протокола как @objc
Когда я создаю протокол Objective C в качестве протокола Swift, я получаю ту же ошибку.
Есть ли способ достичь этого, который будет работать для классов Objective-C и Swift, которые используют протокол?