我正在尝试向我的一个委托方法添加默认实现。但是,在添加默认实现并从实现协议的类中删除方法后,出现does not conform to protocol
错误。它在操场上工作。
protocol NavigationDelegate: NSObjectProtocol {
func didSetToolbarVisible(_ isVisible: Bool)
}
extension NavigationDelegate {
func didSetToolbarVisible(_ isVisible: Bool) {
print("Default implementation")
}
}
class MyViewController: NavigationDelegate {
// 'does not conform to protocol' error
}
我错过了什么?
答案 0 :(得分:2)
默认情况下,某个类不符合journal_mode=DELETE
,这会导致错误。
更改
NSObjectProtocol
到
protocol NavigationDelegate: NSObjectProtocol
答案 1 :(得分:2)
您的NavigationDelegate
使用NSObjectProtocol
的基本协议。这意味着符合NavigationDelegate
的任何内容也必须符合NSObjectProtocol
。将您的类声明更改为以下内容:
class MyViewController: NSObject, NavigationDelegate
。
答案 2 :(得分:0)
解决了!我的NavigationDelegate
及其扩展名与MyViewController
所属的目标不同。只需将扩展程序移动到同一目标即可。
希望这可以帮助将来的某个人