我正在定义一个名为PanelController
的协议,其中我希望存储一个PanelView
。 PanelView
本身是UIView
的子类,定义了面板的基本结构。我有三个不同的视图,它们都是PanelView
的子类:LeftPanel
,MidPanel
和RightPanel
。对于这些面板中的每一个,我都希望定义一个符合PanelController
协议的xxxPanelController
(左、中、右)。
我遇到的问题在于协议和xxxPanelController
。
protocol PanelController {
var panelView: PanelView { get set }
...
}
和
class LeftPanelController: UIViewController, PanelController {
var panelView = LeftPanelView()
...
}
何处
class LeftPanelView: PanelView {
...
}
还有一件事...
class PanelView: UIView {
...
}
我收到一个错误,提示:LeftPanelController不符合PanelController协议
。原因是很显然的:panelView
的类型是LeftPanelView
而不是PanelView
。虽然LeftPanelView
是PanelView
的子类,但这对我来说似乎非常有限,它应该可以正常工作!但它并没有!
有人能解释一下为什么会这样吗?如果有人能想出解决方法,麻烦告诉我一下!谢谢!