Betrachten Sie das folgende einfache View-Controller:Benutzerdefinierte Tabellenansicht Zelle: IBOutlet Etikett ist gleich Null
class ViewController: UIViewController, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var items = ["One", "Two", "Three"]
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.registerClass(CustomTableViewCell.self, forCellReuseIdentifier: "customCell")
self.tableView.dataSource = self
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.items.count;
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCellWithIdentifier("customCell") as CustomTableViewCell
cell.titleLabel!.text = self.items[indexPath.row]
return cell
}
}
und benutzerdefinierte Zelle Ansicht:
class CustomTableViewCell: UITableViewCell {
@IBOutlet weak var titleLabel: UILabel!
}
Dieser Code verursacht den folgenden Fehler.
fatal error: unexpectedly found nil while unwrapping an Optional value
titleLabel
ist nicht - es ist nicht klar, warum. Das Einstellen der Standardeigenschaften von UITableViewCell
(wie textLabel
) funktioniert einwandfrei.
Ich benutze eine Feder für die benutzerdefinierte Zelle.
Sowohl die Etiketten als auch die Tabellenansichten sind korrekt mit ihren IBOutlet
s verbunden.
Sowohl die Prototyp-Zelle und die benutzerdefinierte Spitze Ansicht werden als mit einer CustomTableViewCell
Klasse markiert.
Ich bin neu in der iOS-Entwicklung, vermisse ich etwas offensichtlich?
Sample XCode project available.
Ist die Zelle hier nicht null? (lost cell = self.tableView.dequeueReusableCellWithIdentifier ("customCell") als CustomTableViewCell) – iOSfleer
Sie haben die Warnung "/ Main.storyboard:64: Prototyp-Tabellenzellen müssen Wiederverwendungskennungen" bemerkt? –
@ThomasKilian Das Hinzufügen einer Wiederverwendungskennung im Inspektor Attribute entfernt die Warnung, hat jedoch keine Auswirkungen auf das Problem. –