通用swift IOS"不是"代码编译错误的子类型

Eld*_*tov 5 generics xcode swift

我正在快速学习泛型.而且不明白出了什么问题.

请解释我如何在另一个模板中插入通用模板.

BasePresenter类的宣言看起来像

class BasePresenter<VIEW : BaseView>{
Run Code Online (Sandbox Code Playgroud)

图片中出现以下错误代码:

*UPD*

Shr*_*ada 0

在您的类声明中,您似乎引入的类型(即 PRESENTER)是不需要的。我不确定为什么编译器允许这种部分类型声明,并且稍后当您尝试使用此类部分类型创建变量时正确地给出错误。目前的解决方法是避免这种类型并直接将演示者变量声明为 BasePresenter 类型,或者使用类型别名表示 PRESENTER 类型:

就像是-

class BaseViewController <VIEW: BaseView> : UIViewController, BaseView{

typealias PRESENTER  = BasePresenter<VIEW>!
var presenter : PRESENTER!

//Rest of the class body...
}
Run Code Online (Sandbox Code Playgroud)