gpt4 book ai didi

Swift 3 泛型 : issue with setting UICollectionViewDatasource & Delegate for a UICollectionView inside UITableViewCell

转载 作者:搜寻专家 更新时间:2023-10-31 21:59:28 25 4
gpt4 key购买 nike

我正在将我的应用程序转换为 Swift 3。我偶然发现了一个问题,即使用一种干净的方式为 UITableViewCell 中的 UICollectionView 设置数据源和委托(delegate),描述 here .

代码如下:

func setCollectionViewDataSourceDelegate<D: protocol<UICollectionViewDataSource, UICollectionViewDelegate>>
(_ dataSourceDelegate: D, forRow row: Int) {

collectionView.delegate = dataSourceDelegate
collectionView.dataSource = dataSourceDelegate
collectionView.tag = row
collectionView.reloadData()}

它会发出警告,说明:

'protocol<...>' composition syntax is deprecated; join the protocols using '&'

当我接受建议的解决方案时,它会更改 D: protocol<UICollectionViewDataSource, UICollectionViewDelegate>进入 D: (UICollectionViewDatasource & UICollectionViewDelegate)调用,而是抛出一个错误:

Expected a type name or protocol composition restricting 'D'

如果比我更了解 Swift 3 泛型的人可以提出解决方案,我将不胜感激。

最佳答案

无需使用protocol<>因为编译器已经知道了。只需像这样加入协议(protocol):D: UITableViewDelegate & UITableViewDataSource

关于Swift 3 泛型 : issue with setting UICollectionViewDatasource & Delegate for a UICollectionView inside UITableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40702791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com