swift - 如何修复 swift 3 嵌套的一般错误

标签 swift generics inheritance

下面的代码

/image/07Jry.png

class BaseModel {

}

class BaseView<T: BaseModel> {

}

class BaseController<T: BaseView<BaseModel>> {

}

class MarketModel: BaseModel {

}

class InfoModel: BaseModel {

}

class MarketView: BaseView<MarketModel> {

}

class InfoView: BaseView<InfoModel> {

}

class MarketViewController: BaseController<MarketView> {

}

class InfoViewController: BaseController<InfoView> {

}

我收到这样的错误信息

'BaseController' 要求 'MarketView' 继承自 'BaseView'

'BaseController' 要求 'InfoView' 继承自 'BaseView'

我该如何解决这个问题?

最佳答案

我用下面的代码解决了这个错误:

class BaseModel {

}

class BaseView<T: BaseModel> {

}

class BaseController<T, U: BaseView<T>> {

}

class MarketModel: BaseModel {

}

class InfoModel: BaseModel {

}

class MarketView: BaseView<MarketModel> {

}

class InfoView: BaseView<InfoModel> {

}

class MarketViewController: BaseController<MarketModel, MarketView> {

}

class InfoViewController: BaseController<InfoModel, InfoView> {

}

关于swift - 如何修复 swift 3 嵌套的一般错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47163509/

相关文章:

java - 通用类型转换/实例检查/排除类型参数

c++ - 默认d'tor是否足以用于复数 vector ?

php - SilverStripe 通过 DataExtension 检索原始类名

java - 当父子有不同的Id时如何实现 "is–a"关系

ios - UITabBar 中的 UICollectionView 在第一次加载时显示错误的位置

JavaFX - 为什么 ChoiceBoxes 参数化?

iOS:tableView.reloadData() 在 swift3 中不起作用

c# - 使用相同类型的类定义 where 关键字

ios - 如何隐藏状态栏+在另一个 View Controller (swift)中使用白光内容?

ios - 从应用程序中取消不可续订的订阅