Как получить доступ к переменным-членам в Swift

#uiview #uitextview #swift

#uiview #uitextview #swift

Вопрос:

Вот:

 class CatView : UIView {

    @IBOutlet var textView: UITextView

}
  

Смотрите дальше:

 self.myCatView.textView.text = "meow"
  

Я получаю эту ошибку:

 CatView? does not have a member named textView
  

Мне кажется, что в CatView действительно есть элемент с именем TextView. Чего мне не хватает?

Ответ №1:

myCatView должно быть объявлено как необязательное в определении вашего класса — это ошибка, которую вы получаете, когда пытаетесь получить доступ к свойству необязательной переменной. Сначала вам нужно развернуть его:

 if let catView = self.myCatView {
    catView.textView.text = "meow"
}
  

или

 self.myCatView!.textView.text = "meow"
  

если вы абсолютно уверены, что self.myCatView имеет значение.

Комментарии:

1. Не рекомендуется принудительно разворачивать опции, если вы действительно не уверены, что это не nil. В противном случае во время выполнения генерируется исключение.