繁体   English   中英

类型'ViewController'不符合协议'UICollectionViewDataSource'

[英]Type 'ViewController' does not conform to protocol 'UICollectionViewDataSource'

我正在学习使用UIPickerController操作相机的教程。 但是,在实现UICollectionViewDatsaSource ,我收到一条错误消息,指出ViewController不符合UICollectionViewDataSource协议。

class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout, UIImagePickerControllerDelegate, UINavigationControllerDelegate 

有关如何解决这个问题的任何想法?

您必须在ViewController类中实现这两个方法:

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {}

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {}

PS - 您的函数原型应与上述函数完全匹配。(如果存在,删除任何'!'

您必须在ViewController类中为Collection View实现这两个方法:

 func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    <#code#>
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    <#code#>
}

将协议定义添加到自定义类是不够的。 您必须提供协议所需的功能。 查看协议的文档,您必须至少实现:

collectionView:numberOfItemsInSection:
collectionView:cellForItemAtIndexPath:

UICollectionViewDataSource必须实现两个函数!(它们是协议所需的函数)。

要解决此问题,只需实现以下两个功能: 在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM