[UIView collectionView:numberOfItemsInSection:]: 无法识别的选择器发送到实例
Posted
技术标签:
【中文标题】[UIView collectionView:numberOfItemsInSection:]: 无法识别的选择器发送到实例【英文标题】:[UIView collectionView:numberOfItemsInSection:]: unrecognized selector sent to instance 【发布时间】:2020-02-01 06:42:44 【问题描述】:我似乎在 Xcode 中收到以下错误:
以下是我的代码:
import UIKit
class RestaurantListViewController: UIViewController, UICollectionViewDataSource
@IBOutlet var collectionView:UICollectionView!
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view.
func numberOfSections(in collectionView: UICollectionView) -> Int
return 1
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
return 20
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "restaurantListCell", for: indexPath)
return cell
实用程序面板中反映的我的单元格标识符是:restaurantListCell
任何帮助将不胜感激。
扎克
【问题讨论】:
看起来您将集合视图连接到情节提要中的错误数据源 【参考方案1】:斯威夫特 5
这种问题往往是由于忽略了一些人们有时甚至想不到的非常基本的规则,使用这个清单给它一个代码审查:
首先你的类应该继承 UICollectionViewDelegate、UICollectionViewDataSource。
应设置CollectionView outlet
CollectionView Datasource & Delegate 应该通过 storyboard 或 in viewDidLoad 连接
检查是否已将情节提要与相应的视图控制器类连接。
检查行数和 cellForItemAt 数组数。是否相等。
如果你在 Storyboard 中使用任何流布局类,最后检查一下。它也应该连接。
【讨论】:
【参考方案2】:我遇到了同样的错误,问题是我没有在我的视图控制器中连接集合视图出口,我还没有在情节提要中为我的视图控制器提供类名。
【讨论】:
【参考方案3】:鉴于该帖子已有 5 个月的历史,我不确定该问题是否仍然相关,但我刚刚在我的一个项目中遇到了非常相似的错误消息。 就我而言,问题在于视图控制器类不符合 UICollectionViewDataSource 和 UICollectionViewDelegate 协议。
如果您将 UICollectionViewDelegate 协议添加到您的代码中,它应该可以正常工作。
最好, 范妮
【讨论】:
collectionView:numberOfItemsInSection:
是UICollectionViewDataSource
,为什么符合UICollectionViewDelegate
会有什么不同?以上是关于[UIView collectionView:numberOfItemsInSection:]: 无法识别的选择器发送到实例的主要内容,如果未能解决你的问题,请参考以下文章
在 UIView2 上方显示 UIView1,但在 UIView1 上方显示 UIView2 输入方式
统计从多个 UIView 中随机抽出的 UIView 数量,即:从 9 个 UIView 中随机抽出 5 个 UIView,然后执行操作