2015-07-23 13 views
8

Ho ricevuto questo messaggio di errore quando provo a caricare UICollectionView.Swift: impossibile annullare la visualizzazione di una specie di tipo: UICollectionElementKindCell con identificatore

2015-07-23 16: 16: 09,754 XXXXX [24780: 465.607] * terminazione app a causa di eccezione non identificata 'NSInternalInconsistencyException', la ragione: 'potrebbe non dequeue una visione di tipo: UICollectionElementKindCell con identificatore CollectionViewCell - deve registrare un pennino o di una classe per l'identificatore o collegare un prototipo di cella in uno storyboard' * Prima convocazione tiro stack:

il mio codice

@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 

    } 

Ho già dichiarato CollectionViewCell nell'ispettore storyboard ma il messaggio di errore si verifica ancora.

enter image description here

consiglio prega. Grazie.

+0

Sto indovinando si sta creando il Nib di cellule separatamente e non all'interno di 'UICollectionView'. In caso affermativo, è necessario prima registrare il file pennino con 'UICollectionView'. usando UINib * cellNib = [UINib nibWithNibName: @ "CollectionViewCell" bundle: nil]; [self.collectionView registerNib: cellNib forCellWithReuseIdentifier: @ "CollectionViewCell"]; –

+0

@Dato 'Mohammad Nurdin sei stato in grado di risolvere questo? – Miknash

+0

@Dato 'Mohammad Nurdin sei stato in grado di risolvere questo? – Miknash

risposta

9

Dopo aver dato un'occhiata al vostro eccezione:

2015-07-23 16: 16: 09,754 XXXXX [24780: 465.607] * di terminazione app a causa di eccezione non identificata 'NSInternalInconsistencyException', la ragione: 'potrebbe non dequeue una visione di tipo: UICollectionElementKindCell con identificatore CollectionViewCell - devono registrare un pennino o di una classe per l'identificatore o collegare un prototipo di cella in uno storyboard' * primo tiro stack di chiamate:

ultima parte è più importante:

deve registrare un pennino o di una classe per l'identificatore o collegare un prototipo di cella in uno storyboard

Il che significa che la vostra vista collezione non hanno registrato la tua cella personalizzata. Per risolvere questo componente aggiuntivo seguente nel viewDidLoad:

var nib = UINib(nibName: "UICollectionElementKindCell", bundle:nil) 
self.collectionView.registerNib(nib, forCellReuseIdentifier: "CollectionViewCell") 
+0

Grazie. il mio problema era che non stavo registrando il mio pennino e invece registrando la classe con: self.collectionView! .registerClass (customCollectionCell.self, forCellWithReuseIdentifier: "Cell") Il tuo codice funziona comunque. –

0

Nella tua viewDidLoad() ha messo in questo codice

collectionView.registerClass(YourCustomCellClass.self, forCellWithReuseIdentifier: "cell") 
5

Per Swift 3:

collectionView.register(YourCustomCellClass.self, forCellWithReuseIdentifier: "cell") 
Problemi correlati