【发布时间】:2019-01-14 08:41:18
【问题描述】:
我有一个基本视图控制器,所有视图控制器都将从它继承,我想符合通用类型 D,这是一个协议,但我得到了
从非协议、非类类型'D'继承
&
'type' 不是 'D' 的成员类型
这是我的代码
open class BaseViewController <T, D> :
UIViewController,
D,
ViewControllerCommonFeatures
where T : BasePresenter<D>, D.type == Protocol {
}
Base Presenter 是一个普通的 swift 类,D 将是一个符合其他 swift 协议的 swift 协议。
我至少想将 D 类型定义为协议。
提前谢谢..
【问题讨论】:
-
你想达到什么目的?您的类不能从泛型继承(或符合泛型协议),这不是 if 的工作方式。类基类和它遵循的协议必须在编译时知道。你到底想做什么?
-
@mag_zbc 我想传递一个符合它的协议 D(我想在 括号之间使用它并同时符合它)
-
我没有投反对票。我只是将其标记为可能的重复。
-
@RakeshaShastri 好的,谢谢
-
我可以看到what你想做什么,我在问为了什么目的?,因为你在做什么是不可能的,期间。
标签: ios generics swift3 swift4