2016-06-30 9 views
-1

Ich verwende Alamofire zum Abrufen der Bilder vom Webservice. Ich zeige derjenigediejenigedasjenige Bild in einer benutzerdefinierten Zelle in UICollectionView mit dem folgenden CodeSchwerwiegender Fehler: unerwartet gefunden Null beim Entpacken eines optionalen Werts Swift Verwenden von Alamofire in UICollectionView

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
    let reuseIdentifier = "cell" 
    // get a reference to our storyboard cell 
    let cell : ImageCollectionCell = collectionView.dequeueReusableCellWithReuseIdentifier("cellCollection", forIndexPath: indexPath) as! ImageCollectionCell 

    // Use the outlet in our custom class to get a reference to the UILabel in the cell 
    cell.backgroundColor = UIColor.yellowColor() // make cell more visible in our example project 
    let imageGalleryURLString = self.MutableArray.objectAtIndex(indexPath.row) .valueForKey("thumbnail") as! String 
    let imageURL = NSURL(string:imageGalleryURLString) 
    cell.imageviewCollectionCell.sd_setImageWithURL(imageURL) 
    return cell 
} 

Aber die Anwendung abstürzt bei „cell.imageviewCollectionCell.sd_setImageWithURL (imageURL)“ zeigen "fatale Fehler: unerwartet gefunden nil während Abwickelns ein optionaler Wert "

ich habe gingen durch alle möglichen Verbindungen, und ich habe noch nicht zufrieden

+0

Ich denke, Ihre ImageURL gibt nil ..check, dass ... und nicht erzwingen unwrap Verwendung, wenn lassen oder Wache –

+0

@ EICaptainv2.0 Vielen Dank! aber ich bekomme das imageURL nicht als nill. Bitte klar sein, wo zu verwenden, lassen oder Wache in diesem Code? –

+0

Versuchen Sie, in einem Debugger durchzulaufen und prüfen Sie, ob Ihre 'Zelle' tatsächlich etwas ist (sollte es sein, aber nur um sicher zu sein). Als nächstes ist die 'imageviewCollectionCell' etwas? und ist es richtig verkabelt/verbunden vom '@ IBOutlet' zum eigentlichen imageView? Es scheint nicht so auf der Fehlermeldung basiert :) – pbodsk

Antwort

1

Leider habe ich die benutzerdefinierte UICollectionViewCell in viewDidLoad Methode registriert hatte mit

collectionView!.registerClass(customCell.self, forCellWithReuseIdentifier: "Cell") 

Und ich verwende Storyboard. Nach dem Entfernen dieses Codes funktioniert alles einwandfrei.

+0

OK, also war es der 'RegisterClass' Anruf, der hier der Schuldige war. Interessant :) – pbodsk