【问题标题】:How to conform a typed Array to a protocol [duplicate]如何使类型化的数组符合协议[重复]
【发布时间】:2015-11-30 10:42:36
【问题描述】:
protocol MyProtocol {}

func foo<Item: MyProtocol>(item: Item) {
    //...
}

我有一个函数foo,它接受一个符合MyProtocol 协议的项目。现在我希望该函数也接受符合MyProtocol 的项目数组。是否可以使Array&lt;MyProtocol&gt; 本身符合MyProtocol?

【问题讨论】:

  • 技术上,如果需要,任何类型都可以符合任何协议。但是你想达到什么目的?

标签: arrays swift generics swift2 protocols


【解决方案1】:

您可以使您的foo 方法将数组作为参数。应该这样做。

func foo<Item: MyProtocol>(items: [Item]) {
}

【讨论】:

  • 我正在制作一个二维通用集合视图,因此单元格内的单元格可以水平滚动。理想情况下,我希望为序列和类型的单个实例重用所有内容。实际上foo 类似于func configure&lt;Item:Collectable&gt;(cell: UICollectionViewCell, item: Item)
  • 那么它看起来像func configure&lt;Item:Collectable&gt;(cell: UICollectionViewCell, items: [Item])。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多