具有多个单元格模板的 CollectionView(使用未声明的类型,<typeName> 在此上下文中的类型查找不明确)
Posted
技术标签:
【中文标题】具有多个单元格模板的 CollectionView(使用未声明的类型,<typeName> 在此上下文中的类型查找不明确)【英文标题】:CollectionView with multiple cell templates (use of undeclared type, <typeName> is ambiguous for type lookup in this context) 【发布时间】:2018-08-05 10:59:33 【问题描述】:在我的一个集合视图中,我必须为不同的部分使用两个单元格模板。对于这两个单元格,我使用 .xib 文件。我有两个自定义类:
OverprintsCollectionViewCell
和 OverprintsCollectionViewDetailCell
。
在上述集合视图所在的视图控制器中,``我使用节索引来决定使用哪个模板。代码如下所示:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
if collectionView is OverprintsCollectionView
if indexPath.section == 0
if let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "twoLblCell", for: indexPath) as? OverprintsCollectionViewCell
// Swift compiler message in the line above: "Use of undeclared type 'OverprintsCollectionViewCell'"
// cell setup
return cell
else if indexPath.section == 1
if let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "twoLblDetailCell", for: indexPath) as? OverprintsCollectionViewDetailCell
// Swift compiler message in the line above: "'OverprintsCollectionViewDetailCell' is ambiguous for type lookup in this context"
// cell setup
return cell
return UICollectionViewCell()
尽管有这些错误,应用程序仍能成功构建和运行。 我以前从未使用过包含多个单元格模板的集合视图,我不确定是什么导致了这个问题。
经过一番谷歌搜索后,我检查了一些内容:
- 两个文件(OverprintsCollectionViewCell.swift
和 OverprintsCollectionViewDetailCell.swift
)都正确设置了目标
【问题讨论】:
【参考方案1】:在检查了所有内容(所有标识符、目标等)、清理项目、重新启动 Xcode 之后,实际上有助于删除项目的派生数据。
【讨论】:
以上是关于具有多个单元格模板的 CollectionView(使用未声明的类型,<typeName> 在此上下文中的类型查找不明确)的主要内容,如果未能解决你的问题,请参考以下文章
具有多个单元格的 Collectionview 和 diffable 部分
tableView 单元格内的多个 collectionView 单元格在滚动时更改设计