Middle
Konvensiyalar və təyin edilmiş arasında fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Rahətsiz başlatıcılar ikincildir, onlar yalnızca eyni sinifdəki digər başlatıcıları çağırabilir və sonunda designated başlatıcıya yönəldirlər. Onlar nümunələrin yaradılmasının rahat yollarını əlavə etmək üçün istifadə olunur.
designated başlatıcılar əsasdır, onlar sinfin bütün saxlanılan xüsusiyyətlərinin tam başlanmasını təmin edir (öz və valideyn siniflərinin). Onlar valideyn sinfinin designated başlatıcılarını çağıra bilərlər. Hər sinif ən azı bir designated başlatıcıya malik olmalıdır.
class BaseClass {
var baseProperty: String
init(baseProperty: String) { // Designated başlatıcı
self.baseProperty = baseProperty
}
}
class DerivedClass: BaseClass {
var derivedProperty: Int
init(baseProperty: String, derivedProperty: Int) { // Designated başlatıcı
self.derivedProperty = derivedProperty
super.init(baseProperty: baseProperty) // Valideynin designated başlatıcını çağır
}
convenience init(baseProperty: String) { // Rahətsiz başlatıcı
self.init(baseProperty: baseProperty, derivedProperty: 0) // Öz designated başlatıcıya yönəldir
}
convenience init() { // Rahətsiz başlatıcı
self.init(baseProperty: "Default Base", derivedProperty: -1) // Öz designated başlatıcıya yönəldir
}
}