我定义了一个名为PanelController
的协议,我希望在其中存储PanelView
。 PanelView
本身是UIView
的子类,定义了面板的基本结构。我有三个不同的视图,它们是PanelView
的子类:LeftPanel
,MidPanel
和RightPanel
。对于每个面板,我想定义一个符合xxxPanelController
协议的PanelController
(左,中,右)。
我遇到的问题出现在协议和xxxPanelController
protocol PanelController {
var panelView: PanelView { get set }
...
}
和
class LeftPanelController: UIViewController, PanelController {
var panelView = LeftPanelView()
...
}
,其中
class LeftPanelView: PanelView {
...
}
和(最后一件......)
class PanelView: UIView {
...
}
我收到错误消息:LeftPanelController does not conform to protocol PanelController
原因显而易见:panelView
的类型为LeftPanelView
而不是PanelView
。这似乎真的仅限于我,因为LeftPanelView
是PanelView
的子类,所以它应该正常工作!但它并没有!
有人可以向我解释为什么会这样,如果有人能想出一个,可能的解决方法吗?谢谢!