web-dev-qa-db-fra.com

Le type 'ViewController' n'est pas conforme au protocole 'UICollectionViewDataSource'

Je suis un tutoriel sur l’utilisation de la UIPickerController pour faire fonctionner la caméra. Cependant, lors de l'implémentation de UICollectionViewDatsaSource, j'obtiens une erreur disant que ViewController n'est pas conforme au protocole UICollectionViewDataSource

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

Une idée sur la façon de résoudre ce problème? 

15
RPMouton

Vous devez implémenter ces deux méthodes dans votre classe ViewController:

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

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

P.S. - Le prototype de votre fonction doit correspondre exactement aux fonctions ci-dessus (supprimez tout '!' s'il est présent).

31
Aks

Vous devez implémenter ces deux méthodes dans votre classe ViewController pour Collection View:

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

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

L'ajout de la définition de protocole à votre classe personnalisée ne suffit pas. Vous devez fournir les fonctions requises du protocole. Voir la documentation du protocole, vous devez au moins implémenter:

collectionView:numberOfItemsInSection:
collectionView:cellForItemAtIndexPath:
2
zisoft

UICollectionViewDataSource a deux fonctions à implémenter! (Ce sont des fonctions obligatoires du protocole).

Pour résoudre le problème, implémentez simplement les deux fonctions suivantes: entrez la description de l'image ici

0
渠晓友