Так как Swift поддерживает метод и перегрузку инициализатора, вы можете поместить несколько init рядом друг с другом и использовать то, что вы считаете удобным:
class Person {
    var name:String
    init(name: String) {
        self.name = name
    }
    init() {
        self.name = "John"
    }
}
Итак, почему ключевое слово convenience существует даже? Что делает следующие существенно лучше?
class Person {
    var name:String
    init(name: String) {
        self.name = name
    }
    convenience init() {
        self.init(name: "John")
    }
}



