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/

相关文章:

swift - 将 INNER JOIN 查询从 SQLite 转换为 SQLite.Swift

c# - C# 中的类声明

java - FlexJson 序列化和反序列化接口(interface)

ios - 使用平移手势识别器关闭 View Controller

ios - 如何根据剩余高度来布局 UIImageViews?

swift - 具有二元运算的通用函数

generics - rust:巨大的通用构造函数,嵌套特征

c# - 基类数组到派生类数组的转换

Javascript 继承并丢失 'this' 的上下文

swift - XCTestExpectation 似乎在 Task() 中不起作用