2017-01-01 2 views
1

Ich bin neu in Swift und iOS und habe eine Situation, wo ich eine Reihe von URL-Strings nehmen und eine ImageView innerhalb einer UITableViewCell füllen möchte, die ich habe eine geeignete Klasse für, namens MyTableViewCell.Wie man ImageView in einer UITableViewCell mit SDWebImage in Swift 3 richtig einstellt

Es abstürzt und ich den Fehler bekommen:

"fatal error: unexpectedly found nil while unwrapping an Optional value" 

Was ich in der viewDidLoad(), wenn die Linie passiert imageTableView.datasource = self Läufe sehen.

Ich gründe die Daten und Delegierter in der Ansicht als so:

override func viewDidLoad() { 
    super.viewDidLoad() 
    imagesTableView.dataSource = self 
    imagesTableView.delegate = self 
} 

Unten imageUrls ein Array von Strings ist.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

    let cell: MyTableViewCell = tableView.dequeueReusableCell(withIdentifier: "myTableViewCell", for: indexPath) as! MyTableViewCell 

    cell.imageView.sd_setImage(with: URL(string: imageUrls[indexPath.row])) 

    return cell 
} 

ich einen Ausgang auf die Zelle haben wie so in der Klasse:

@IBOutlet var imagesTableView: UITableView! 

Meine Frage ist, was der richtige Weg ist dieses 3 und SDWebImage mit schnellen zu tun, und warum/wo der Nullwert von der imagesTableView auftritt?

Es ist vielleicht erwähnenswert, dass ich auch versucht habe, einige String-URL-Werte in die imageUrls zu codieren, um sicherzustellen, dass das nicht das Problem war (ich bekomme den gleichen Fehler mit hartcodierten Werten).

+0

Wie erstellen Sie den View-Controller? Wenn Sie es nicht über das Storyboard erstellen, werden die Ausgänge nicht festgelegt. Auch Variablen und Eigenschaften sollten per Konvention mit einem Kleinbuchstaben beginnen. – Paulw11

+0

@ Paulw11 danke für den Tip der Namenskonvention, nur einige davon oben behoben. Ich erstelle den View-Controller aus dem Storyboard. Wenn ich den Tabellenansichtscode entferne, wird der Rest der Ansicht ohne Fehler geladen – jeanmw

+0

Haben Sie die Steckdose angeschlossen? – Paulw11

Antwort

1

Es stellt sich heraus, dass, obwohl ich eine Steckdose angeschlossen hatte, irgendwie die Referenz verloren - ich löschte die gesamte Tabellenansicht und Subviews und neu erstellt und verbunden, und der Fehler war weg. Irgendetwas Ungewöhnliches muss passiert sein, als ich vorher für die Steckdose gezogen und gedroppt habe.

Verwandte Themen