J'ai reçu ce message d'erreur en essayant de charger UICollectionView.
2015-07-23 16: 16: 09.754 XXXXX [24780: 465607] Application terminée en raison de Exception non interceptée 'NSInternalInconsistencyException', raison: 'ne [pouvait] pas supprimer la vue de type: UICollectionElementKindCell avec identifiant CollectionViewCell - doit enregistrer une plume ou une classe pour l'identifiant ou connecter une cellule prototype dans un storyboard '
Première pile d'appels:
Mon code
@IBOutlet var collectionView: UICollectionView!
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("CollectionViewCell", forIndexPath: indexPath) as! CollectionViewCell
cell.backgroundColor = UIColor.blackColor()
cell.textLabel?.text = "\(indexPath.section):\(indexPath.row)"
cell.imageView?.image = UIImage(named: "category")
return cell
}
J'ai déjà déclaré CollectionViewCell
dans l'inspecteur du storyboard, mais le message d'erreur persiste.
Après avoir examiné votre exception:
2015-07-23 16: 16: 09.754 XXXXX [24780: 465607] * Application suspendue en raison de Exception non interceptée 'NSInternalInconsistencyException', raison: 'ne [pouvait] pas annuler l'affichage d'une sorte de type: UICollectionElementKindCell avec identifiant CollectionViewCell - doit enregistrer une plume ou une classe pour l'identifiant ou connecter une cellule prototype dans un storyboard '* pile d'appel du premier jet :
la dernière partie est la plus importante:
doit enregistrer une plume ou une classe pour l'identifiant ou connecter une cellule prototype à un storyboard
Ce qui signifie que votre vue de collection n'a pas enregistré votre cellule personnalisée. Pour résoudre ce problème, ajoutez ce qui suit dans votre viewDidLoad
:
var nib = UINib(nibName: "UICollectionElementKindCell", bundle:nil)
self.collectionView.registerNib(nib, forCellReuseIdentifier: "CollectionViewCell")
Pour Swift 3:
collectionView.register(YourCustomCellClass.self, forCellWithReuseIdentifier: "cell")
Dans votre viewDidLoad (), mettez ce code
collectionView.registerClass(YourCustomCellClass.self, forCellWithReuseIdentifier: "cell")