Ответ 1
Здесь у вас есть несколько вариантов.
-
Сделайте
text
необязательным.var text: String?
-
Дайте
text
значение по умолчаниюvar text: String = ""
-
Дайте
text
значение вARandom
initializerinit() { text = "" }
Причина этого в том, что вы определяете text
как String
. Это необязательно. По существу, вы говорите, что это всегда String
и никогда nil
.
С вашим текущим кодом, если вы создали новый экземпляр ARandom
, text
не будет иметь значения - и это невозможно, если text
не является необязательным
Apple docs, вероятно, объясняет это немного лучше
Классы и структуры должны устанавливать все свои сохраненные свойства в соответствующее начальное значение к моменту экземпляра этого класса или структура создана. Сохраненные свойства не могут быть оставлены в неопределенное состояние.
Вы можете установить начальное значение для сохраненного свойства в пределах инициализатор или присвоение значения свойства по умолчанию как части определение свойств.