Проблема заключается в том что вы пытаетесь присвоить UIColor
к String
. Вы хотите использовать textColor
собственность на ячейки textLabel
вместо этого, например, так:
cell.textLabel?.textColor = UIColor.darkTextColor()
Также обратите внимание, что у вас есть многоразовое несоответствие идентификатора ячейки ("Cell"
для новосозданных, "cell"
для извлечения их).
Однако здесь есть более серьезные проблемы.
Вы действительно не должны мусорить о crash operators (!
), чтобы отклонить ошибки компилятора. Конечно, теперь это может быть полностью «безопасным» (как вы делаете проверку == nil
), но это просто поощряет их использование в будущем в тех местах, где они никогда не должны использоваться. Они также могут быть довольно опасны для будущих рефакторингов кода.
Я бы порекомендовал вам переписать код, чтобы воспользоваться оператором nil-coalescing (??
). Вы можете использовать это, чтобы попытаться получить повторно используемую ячейку. Если это не удается, вы можете вместо этого заменить его на вновь созданный. Вы также можете использовать автоматическое выполнение закрытия ({...}()
), чтобы выполнить некоторую общую настройку ячейки.
Например:
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
}
Теперь это легко определить, принадлежит ли !
в вашем коде или нет. Это ... нет.
Не доверяйте никому, кто рекомендует добавлять дополнительные коды к вашему коду, чтобы решить ваши проблемы. Это просто становится источником больших проблем.
Какое сообщение об ошибке? –
@JeffPuckettII В названии? – Hamish