protocol Collectionviewmodeling { associatedtype CellType func cellAtIndexPath(indexPath: NSIndexPath) -> CellType}
现在我有一个符合上述协议的视图模型协议:
enum MyItemCell { case MyItemCell1,MyItemCell2}protocol ItemsListviewmodeling: Collectionviewmodeling { associatedtype CellType = MyCell}
最后,在其他地方,我想声明一个符合le协议ItemsListviewmodeling的var:
var viewmodel: ItemsListviewmodeling
我收到这个错误:
Protocol ‘ItemsListviewmodeling’ can only be used as a generic constraint because it has Self or associated type requirements
但我可以轻松创建一个实现此协议的类.
是否可以将var声明为关联的类型协议?因为我在协议ItemsListviewmodeling中给出了相关类型的最终类型,所以我不明白为什么我从编译器中看到这个错误.
谢谢
解决方法 看那里 stackoverflow.com总结You can’t treat protocols with associated types like regular protocols and declare them as standalone variable types.
以上是内存溢出为你收集整理的Swift关联类型和协议继承全部内容,希望文章能够帮你解决Swift关联类型和协议继承所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)