Label Outlet Auf Benutzerdefinierte UICollectionViewCell In Swift Verursachen Optional.Keine Absturz

Ich habe eine collectionViewController, die ich anzeigen möchten, die eine Reihe von benutzerdefinierten UICollectionViewCells mit einigen labels auf Sie. Leider immer wenn ich versuche und auf die benutzerdefinierten UICollectionViewCell-label, verursacht es einen Absturz mit:

Konsole

schwerwiegender Fehler: Kann nicht entpacken Optional.Keine

Fenster

Thread1: EXC_BAD_INSTRUCTION(code=EXC_1386_INVOP, subcode=0x0)

Ich versuche, auf das label etwa so:

cell.name.text = names[indexPath!.item]

Vielleicht kommt aus meiner Steckdose label zu null? Aber die Suche nach Antworten hat nichts geklappt, und da bin ich nicht wirklich sicher, was das Problem ist, hinzufügen ?/! in meinem code nicht wirklich helfen.

MyCustomUICollectionViewController

class ScrambledTextCollectionViewController: UICollectionViewController {

    var names: String[] = ["Anna", "Alex", "Brian", "Jack"]

    override func viewDidLoad() {
        super.viewDidLoad()

        //Register cell classes
        self.collectionView.registerClass(MyCustomCollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)

    }

    override func numberOfSectionsInCollectionView(collectionView: UICollectionView?) -> Int {
        return 1
    }

    override func collectionView(collectionView: UICollectionView?, numberOfItemsInSection section: Int) -> Int {
        return names.count
    }

    override func collectionView(collectionView: UICollectionView?, cellForItemAtIndexPath indexPath: NSIndexPath?) -> UICollectionViewCell? {
        var cell = collectionView?.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as MyCustomCollectionViewCell

        cell.name.text = names[indexPath!.item]

        return cell
    }
}

MyCustomCollectionViewCell

class MyCustomCollectionViewCell: UICollectionViewCell {

    @IBOutlet var name: UILabel
    init(frame: CGRect) {
        super.init(frame: frame)                
    }
}
  • Welche Zeile wird der Fehler auf? Haben Sie einen exception breakpoint, um zu versuchen, um herauszufinden, wo der Fehler ist?
  • Zelle.name.text = Namen[indexPath!.item] bekommt eine Thread1: EXC_BAD_INSTRUCTION(code=EXC_1386_INVOP, subcode=0x0)
  • Vielleicht bin ich dumm, aber Sie haben nicht definiert, die var names außerhalb des Anwendungsbereichs der viewDidLoad. Sicherlich sollten Sie definieren den var... var names im Rahmen des gesamten Objekts nicht nur viewDidLoad.
  • Ah Hoppla, das ist, weil ich habe vereinfacht den code für Stack-Überlauf und das array sollte nicht eingestellt werden, es, ich werde es zu beheben, aber es ist nicht das Problem.
  • "Vielleicht kommt aus meiner Steckdose label zu null?" Wenn cell.name ist in der Tat nil, ist das dein problem. Können Sie melden Sie Ihren Wert direkt vor Ihrem Absturz line?
  • println(cell.Wort), wird nil zurückgegeben, so dass Sie scheinen auf die Antwort, aber wie/wo würde ich es nicht null?
  • Versuchen Sie ersetzen Ausrufezeichen-Frage-tag-Namen[indexPath?.Artikel]
  • Glaube ich nicht, das würde mein Problem behoben, es stürzt ab selbst wenn ich direkt die Bezeichnung der Zelle.name.text = "Hallo". Was mich verwirrt ist, dass ich gemacht habe eine UITableView verwenden Sie eine custom UITableViewCell in viel die gleiche Weise, ohne Frage.
  • ich habe das gleiche Problem, mein label und Bildansicht ist die Rückgabe nil aus einer benutzerdefinierten collection-Zelle. Ich habe überprüfen Sie die Verbindung und Klasse name korrekt ist, aber kein Glück. jede Lösung, jeder?
  • Dies ist so einfach, aber ich kann es nicht funktionieren. Swift gibt die die MAUERSEGLER !

Schreibe einen Kommentar