Diese Klasse ist nicht die key-value-coding-konform für den Schlüssel...warum?
Habe ich verlinkte Ausgabe aus der IB, um den code, wie unten gezeigt.
class DiaryTableViewCell: UITableViewCell {
@IBOutlet weak var TitleLabel: UILabel!
@IBOutlet weak var SubTitleLabel: UILabel!
@IBOutlet weak var leftImageView: UIImageView!
@IBOutlet weak var rightImageView: UIImageView!
}
Hier, ich bin registrieren der Klasse:
override func viewDidLoad() {
self.title = "My Diary"
cellNib = UINib(nibName: "TableViewCells", bundle: nil)
tableView.registerClass(DiaryTableViewCell.classForCoder(), forCellReuseIdentifier: kCellIdentifier)
}
Aber ich bekomme immer folgenden Laufzeitfehler:
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '...setValue:forUndefinedKey:]: diese Klasse ist nicht key-Wert
coding Anforderungen für die Schlüssel SubTitleLabel.'
Innerhalb des folgenden code ein:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier(kCellIdentifier) as DiaryTableViewCell?
if (cell == nil) {
tableView.registerClass(DiaryTableViewCell.classForCoder(), forCellReuseIdentifier: kCellIdentifier)
cell = cellNib?.instantiateWithOwner(self, options: nil)[0] as? DiaryTableViewCell
cell?.selectionStyle = .None
}
if (cell != nil) {
println("\(x++)) Inside cell")
cell!.TitleLabel.text = "Hello"
cell!.SubTitleLabel.text = "World"
}
return cell!
}
Speziell, es ist hier passiert:
cell = cellNib?.instantiateWithOwner(self, options: nil)[0] as? DiaryTableViewCell
Frage: Wie bin ich gegen die key-value-coding-konform für ein UILabel?
Das ist noch nicht vorgekommen... UILabel ist KVO konform.
- Was ist
cellNib?
. Und warum rufst du nichtregisterClass
imviewDidLoad
so dasstableView.dequeueReusableCellWithIdentifier
gibt immer den richtigen Zelle? - Haben Sie gebunden dieses "DiaryTableViewCell" - Klasse, um Ihre TableViewCell in Ihrer Identität inspector unter custom class?
- möglich, Duplikat der Was bedeutet das? "'NSUnknownKeyException', Grund: ... Diese Klasse ist nicht die key-value-coding-konform für die Taste "X"
- Problem nicht reproduzierbar (siehe OP ' s own Antwort).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich verbunden mit der FALSCHEN Quelle!
Hier ist das Ergebnis:
Sollten Sie nicht anrufen
instantiateWithOwner
sich intableView:cellForRowAtIndexPath
.Registrieren Sie die Feder in
viewDidLoad
und danndequeueReusableCellWithIdentifier
wird die ganze Arbeit für Sie.Den Grund für Ihre besonderen Fehler, den Sie anrufen
instantiateWithOwner
vorbeiself
als Besitzer und so die Feder wird versuchen, die Verdrahtung der Steckdosen bis zu IhremUITableViewDataSource
Umsetzung Klasse eher als eineDiaryTableViewCell
.Zeigen die Referenzen Ihrer ViewController rechten Maustaste in es auf die Gliederung des Dokuments. Wahrscheinlich werden Sie sehen, eine Warnung, eine der Referenzen. Löschen Sie es und verbinden Sie es erneut, wenn es noch brauchen.
manchmal seine möchten, wenn Sie die erstellen-Schaltfläche in Ihrem xib erstellen Sie eine Schaltfläche und kopieren Sie andere Tasten aus Tasten ein, in diesem Fall tritt dieser Fehler auf, und ja entfernt, der verbindungen von xib-könnte auch ein Grund.
Habe ich eine TableViewCell gleiche wie Ihre & habe das gleiche problem. Ich habe die Forschung die Lösung des Problems aber nichts. Dann lösche ich Label in TableViewCell und neu wieder, schließen Sie es an TableViewCell über Datei-Eigentümer,v..v Und das Ergebnis ist richtig. Keine Fehler. Sollten Sie neu erstellen Sie Sie erneut.