Das Problem ist, dass Sie eine UIColor
zu einem String
zuweisen versuchen. Sie wollen textLabel
stattdessen die textColor
Eigenschaft auf der Zelle verwenden, etwa so:
cell.textLabel?.textColor = UIColor.darkTextColor()
Beachten Sie auch, dass Sie eine wieder verwendbare Zellkennung Mismatch haben ("Cell"
für neu diejenigen geschaffen, "cell"
für sie zu holen).
Allerdings gibt es hier größere Probleme.
Sie sollten nicht über crash operators (!
) littering, um Compilerfehler zu schließen. Sicher, es kann jetzt völlig "sicher" sein (wie Sie eine Überprüfung durchführen) - aber es ermutigt nur die zukünftige Verwendung von ihnen an Orten, wo sie wirklich nie verwendet werden sollten. Sie können auch für zukünftige Code-Refactorings ziemlich gefährlich sein.
Ich würde empfehlen, dass Sie Ihren Code neu schreiben, um den Nullkoaleszenzoperator zu nutzen (??
). Sie können dies verwenden, um eine wiederverwendbare Zelle zu erhalten. Wenn das fehlschlägt, können Sie stattdessen in einem neu erstellten ersetzen. Sie können auch ein automatisch ausgeführtes Closure ({...}()
) verwenden, um einige allgemeine Zellen einzurichten.
Zum Beispiel:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// attempt to get a reusable cell – create one otherwise
let cell = tableView.dequeueReusableCellWithIdentifier("foo") ?? {
// create new cell
let cell = UITableViewCell(style: .Default, reuseIdentifier: "foo")
// do setup for common properties
cell.backgroundColor = UIColor.redColor()
cell.selectionStyle = .None
// assign the newly created cell to the cell property in the parent scope
return cell
}()
// do setup for individual cells
if indexPath.row % 2 == 0 {
cell.textLabel?.text = "foo"
cell.textLabel?.textColor = UIColor.blueColor()
} else {
cell.textLabel?.text = "bar"
cell.textLabel?.textColor = UIColor.greenColor()
}
return cell
}
Jetzt ist es leicht zu erkennen, ob ein !
in Ihrem Code gehört oder nicht. Es ... er tut es nicht.
Vertrauen Sie niemandem, der empfiehlt, Ihrem Code zusätzliche Crash-Operatoren hinzuzufügen, um Ihre Probleme zu lösen. Es wird nur eine Quelle für mehr Probleme.
Was ist die Fehlermeldung? –
@JeffPuckettII Im Titel? – Hamish