2017-06-12 19 views
0

Laut meinem anderen Thread habe ich ein Signal SIGABRT Fehler in meinem Code. Der Code besteht aus:Swift: Tabellenansicht - Signal SIGABRT

Ein Storyboard mit 1 TableView und 1 Table Cell enthalten Eine benutzerdefinierte Tablecell-Klasse (TableViewCell_Prototyp), die durch (starke) IBoutlets mit dem Storyboard verbunden ist. Eine View Controller-Klasse, die im Folgenden beschrieben wird.

Meine ViewController-Klasse ist mit 3 Super-Klassen verbunden: UIViewController, UITableViewDelegate, UITableViewDataSource. Zusätzlich sind 3 Funktionen implementiert. Kann jemand den Fehler finden?

override func viewDidLoad() { 
    super.viewDidLoad() 
} 

Ich weiß nicht, was hier passiert. Es wurde standardmäßig geschrieben, so dass es keine Fehler verursachen sollte.

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return 1 
} 

Ich möchte nur eine Tabellenzelle zurückgegeben werden.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell (withIdentifier: "picCell") as! TableViewCell_Prototyp 
    cell.shoutPic.image = #imageLiteral(resourceName: "Bildschirmfoto 2017-06-05 um 10.11.21") 
    cell.shoutText.text = "Hallooooooooo" 
     return cell 
} 

shoutPic shoutText und wird durch Auslässe zur TableViewCell_Prototype benutzerdefinierten Klasse verbunden.

+2

Was ist die komplette Fehlermeldung? Welche Codezeile verursacht genau den Fehler? – rmaddy

+0

libC++ abi.dylib: Beenden mit nicht abgefangener Ausnahme vom Typ NSException –

Antwort

0

Wenn dies alle Ihre Code ist, würde ich prüfen, ob Ihr Prototyp Zelle Kennung entspricht „Piccell“ genau und dass seine Klasse ist auf TableViewCell_Prototyp

Ich denke @Gereon Recht ist, dass man mit einem aus der Warteschlange entfernt benötigen andere Methode.

Die Klasse TableViewCell_Prototyp ist nicht genug - Sie müssen es auf die Zelle in der Storyboard-Datei festlegen. Klicken Sie auf die Zelle im Storyboard und legen Sie sie auf der Registerkarte Identität fest.

+0

Es ist. Ich habe die Komplexität auf ein Minimum reduziert und es funktioniert immer noch nicht. Sie finden die TableViewCell_Protoyp-Klasse im folgenden. –

+0

import UIKit Klasse TableViewCell_Prototyp: UITableViewCell { @ IBOutlet var shoutPic: UIImageView! @ IBOutlet var shoutText: UILabel! Überschreibung func awakeFromNib() { super.awakeFromNib() // Initialisierungscode } Überschreibung func setSelected (_ ausgewählt: bool, animierte: bool) { super.setSelected (ausgewählt, animierte: animiert) // Konfigurieren Sie die Ansicht für den ausgewählten Status } } –

1

Wenn Sie benutzerdefinierte Tabellenzelle Klassen angemeldet für Ihre Tableview haben, ist es besser, sie aus der Warteschlange entfernt dequeueReusableCell(withIdentifier:for:) verwenden, etwa so:

let cell = tableView.dequeueReusableCell(withIdentifier: "picCell", for: indexPath) as! TableViewCell_Prototyp 
Verwandte Themen