Swift关联类型和协议继承

Swift关联类型和协议继承,第1张

概述我正在使用 Swift 2.2并且我声明了一个具有相关类型的协议如下: protocol CollectionViewModeling { associatedtype CellType func cellAtIndexPath(indexPath: NSIndexPath) -> CellType} 现在我有一个符合上述协议的视图模型协议: enum MyItemCell { 我正在使用 Swift 2.2并且我声明了一个具有相关类型的协议如下:

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关联类型和协议继承所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1015441.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存