Middle
35
0
questionbank

В чем отличие между convention и designated инициализаторами в Swift?

Answer from sobes.tech neural network
  • Designated Инициализатор: Главный, "основной" инициализатор в классе. Он должен полностью инициализировать все собственные хранимые свойства класса, а затем вызывать вверх по иерархии designated инициализатор родительского класса (через super.init). Каждый класс должен иметь хотя бы один designated инициализатор.

  • Convenience Инициализатор: Вспомогательный инициализатор, призванный упростить создание экземпляров класса в определенных сценариях. Он обязательно должен вызывать другой инициализатор из того же класса – либо designated, либо другой convenience. ultimately, цепочка вызовов convenience инициализаторов должна привести к вызову designated инициализатора в том же классе. Convenience инициализаторы необязательны.

Вот схема делегирования инициализации:

plaintext

Пример:

swift
  • Designated Инициализатор: Главный, "основной" инициализатор в классе. Он должен полностью инициализировать все собственные хранимые свойства класса, а затем вызывать вверх по иерархии designated инициализатор родительского класса (через super.init). Каждый класс должен иметь хотя бы один designated инициализатор.

  • Convenience Инициализатор: Вспомогательный инициализатор, призванный упростить создание экземпляров класса в определенных сценариях. Он обязательно должен вызывать другой инициализатор из того же класса – либо designated, либо другой convenience. ultimately, цепочка вызовов convenience инициализаторов должна привести к вызову designated инициализатора в том же классе. Convenience инициализаторы необязательны.

Вот схема делегирования инициализации:

plaintext

Пример:

swift

Register or sign in to get access to full answers for all questions from the question bank.

swiftinitializationdesignatorsprogramming-languageobject-orientedmemory-management