Einfach ausgedrückt: Wie kann ich vermeiden, !
für jede Zeile im folgenden Swift-Code zu schreiben? Ich dachte guard
, aber der UITableViewCell Initialisierer kann zurückgeben nil, aber andererseits cellForRowAtIndexPath
muss zurückgeben non-nil, die wie ein Widerspruch in sich scheint. Hoffe, es gibt einen kurzen und süßen Weg.Vermeidung von Übertreibungen! Verwendung in der Swift-Funktion (cellForRowAtIndexPath)
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier(reuseIdentifier)
if cell == nil {
cell = UITableViewCell(style: .Default, reuseIdentifier: reuseIdentifier)
}
cell!.textLabel?.text = ...
cell!.textLabel?.textColor = ...
cell!.detailTextLabel?.textColor = ...
cell!.detailTextLabel?.textColor = ...
return cell!
}
plus eins für die Qualität des Codes zu kümmern. –
@ PaulCantrell Antwort ist großartig, aber wenn Sie eine ähnliche Situation, in der Sie die Optionalität einer Variablen nicht entfernen können, können Sie die 'if let 'Anweisung, den optionalen Wert an einen neuen Namen (vielleicht sogar die gleicher Name) als nicht optional, und gibt Ihnen auch die Möglichkeit, den 'nil' Fall zu behandeln. https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/OptionalChaining.html – Alexander