我有以下代码:
protocol DataSourceItem { }
protocol TableDataSourceItem : DataSourceItem { }
class DataSource<T : DataSourceItem> { }
class TableDataSource<T : TableDataSourceItem>: DataSource<T> { }
class DataSourceBuilder<T : TableDataSourceItem, U : TableDataSource<T>> { }
class TableDataSourceBuilder<T : TableDataSourceItem, U : TableDataSource<T>> : DataSourceBuilder<T, U> { }
enum MyItem: TableDataSourceItem { }
class MyBuilder : TableDataSourceBuilder<MyItem, TableDataSource<MyItem>> { }
let builder = MyBuilder()
但Xcode没有编译,失败并出现错误:
命令/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc失败,退出代码为1
我尝试过通常的清洁,重启等,但没有运气。
注意,上面的代码是我尝试在新的单个视图项目中编译的确切代码,没有添加任何其他内容。
当评论出行找到罪魁祸首时,如果我注释掉以下内容,代码就会起作用:
class TableDataSourceBuilder<T : TableDataSourceItem, U : TableDataSource<T>> : DataSourceBuilder<T, U> { }
enum MyItem: TableDataSourceItem { }
class MyBuilder : TableDataSourceBuilder<MyItem, TableDataSource<MyItem>> { }
let builder = MyBuilder()
具体来说,行:
class TableDataSourceBuilder<T : TableDataSourceItem, U : TableDataSource<T>> : DataSourceBuilder<T, U> { }
我假设它与TableDataSource<T>
有关。
我在这里看不到任何语法错误。