Тип 'ViewController' не соответствует протоколу 'UICollectionViewDataSource'

Я следую учебнику, где с помощью UIPickerController управлять камерой. Однако при реализации UICollectionViewDatsaSourceЯ получаю сообщение об ошибке ViewController не соответствует UICollectionViewDataSource протокол.

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

Есть идеи, как решить эту проблему?

4 ответа

Вы должны реализовать эти два метода в вашем 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 имеет две функции, которые должны быть реализованы!(Они являются обязательными функциями протокола).

Чтобы решить эту проблему, просто реализуйте две функции следующим образом: введите описание изображения здесь

Другие вопросы по тегам