Вспомогательные инициализаторы convenience init()

В языке Swift вспомогательные инициализаторы являются вторичными, поддерживающими инициализаторами для класса. Существуют три правила, которые нужно соблюдать, используя вспомогательные инициализаторы:

Правило 1

Назначенный инициализатор должен вызывать назначенный инициализатор из super-класса. И он может вызывать только этот инициализатор. Мы должны инициализировать свои собственные свойства перед тем, вы вызовите инициализатор  super-класса. Но мы должны вызывать init своего  super-класса перед тем, как присваивать значения наследуемым (inherited) свойствам из вашего super-класса

Правило 2

Вспомогательный инициализатор должен вызывать другой инициализатор из того же класса. Он также может быть вспомогательным. В конечном итоге вспомогательный инициализатор должен вызывать назначенный инициализатор СВОЕГО класса. Это нужно сделать перед тем, как мы начнем работать с любыми значениями свойств или с методами. Другими словами мы должны сделать первоначальную инициализацию нашего объекта прежде, чем начнем «удобным» способом «поправлять»  свойства в нем.

Правило 3

Вспомогательный инициализатор в конечном счете должен вызывать назначенный инициализатор.

//
// proSwift.ru
//

class Food {
  var name: String
  init(name: String) {
    self.name = name
  }
  convenience init() {
    self.init(name: "[Unnamed]")
  }
}

 

Метки:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.