Разница между установкой переменной в init и переопределением этой переменной в Swift? - PullRequest
0 голосов
/ 28 апреля 2018

Я работаю над доступностью и вижу некоторый код в проекте, над которым я работаю, который переопределяет переменную isAccessibilityElement. Чем это отличается и / или почему это лучше, чем просто установка переменной в init?

Вот что я вижу в своем проекте:

public override var isAccessibilityElement: Bool 
{
  get { return false }
  set { }
}

Чем он отличается от этого?

public init()
{
  super.init(frame: .zero)
  isAccessibilityElement = false
}

1 Ответ

0 голосов
/ 28 апреля 2018

Я нашел ответ, когда задавал вопрос.

Когда вы пишете этот код:

public override var isAccessibilityElement: Bool 
{
  get { return false }
  set { }
}

Вы запрещаете пользователям этого представления изменять это свойство, оставляя установщик пустым. Если вы просто установите свойство в init, то пользователи этого класса все равно смогут изменить это значение, что может привести к нежелательным результатам.

Тем не менее, выполнение этого способа также молча провалится !!!

Повторим: УСТАНОВКА ЭТОЙ ПЕРЕМЕННОЙ БУДЕТ НЕ БЕСШУМНО

...