Разница между init и convenience init в Swift заключается в их функциях и назначении.
Init — это первичный инициализатор, который полностью устанавливает значения всех свойств класса и вызывает соответствующий инициализатор суперкласса для продолжения процесса инициализации. 14 Каждый класс должен иметь хотя бы один init. 1
Convenience init — это вторичный инициализатор, который вызывает первичный инициализатор из того же класса, при этом некоторые параметры первичного инициализатора устанавливаются в значения по умолчанию. 13 Convenience init обычно используется для предоставления альтернативных способов инициализации экземпляра. 2
Таким образом, init отвечает за основную инициализацию, а convenience init — за упрощение процесса инициализации для конкретных случаев. 45