6.0.1 и изменения таблицы "UILabel? Не имеет члена с именем" текст ",

Я работаю над демонстрационными примерами Swift, и все они имеют такое же сообщение об ошибке в разделе 6.0.1. Не знаете, как это решить:

enter image description here

Ответ 1

попробуйте следующее:

cell.textLabel!.text = self.tableData[indexPath.row]

И прочитайте эту статью о вариантах здесь: Опции в Swift

Update:

Теперь лучше использовать более удобный подход:

cell.textLabel?.text = self.tableData[indexPath.row]

Ответ 2

В Xcode 6.1.1 вам необходимо развернуть ячейку и textLabel:

cell!.textLabel!.text = "ваш текст"

Ответ 3

Если вы просмотрите документацию свойств textLabel здесь, вы найдете ее как:

var textLabel: UILabel? { get }

Это означает, что свойство является необязательным. Это означает, что оно может содержать допустимое значение или оно может быть нулем. Если вы на 100% уверены, что ваша ячейка будет заполнена этим textLabel, вы можете использовать метод, предложенный derdida i.e:

cell.textLabel!.text = self.tableData[indexPath.row]

Однако, как справедливо указал Патрик Линч, вы просто настраиваете себя на будущие сбои во время выполнения (бомбы замедленного действия), если вы делаете это со всеми возможными случаями, с которыми вы сталкиваетесь. Лучшая практика заключается в написании кода, который будет изящно обрабатывать случай, когда Необязательный - это нуль. В этом случае целое выражение оценивается как nil. Что-то вроде этого:

cell.textLabel?.text = self.tableData[indexPath.row]

Хотя у меня нет инфографики для этой темы, очень хорошая рецензия существует здесь и позволит вам быстро дойти до скорости. Надеюсь, что это поможет.