Sobes.tech
Middle

Conventionlar ile belirlenmiş arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kolaylaştırıcı başlatıcılar ikincil olup, yalnızca aynı sınıftaki diğer başlatıcıları çağırabilirler ve sonunda designated başlatıcıya devrederler. Nesneleri oluşturmanın kullanışlı yollarını eklemek için kullanılırlar.

designated başlatıcılar ana başlatıcılar olup, sınıfın tüm saklanan özelliklerinin tam olarak başlatılmasını sağlarlar (kendi ve ebeveyn sınıfının). Ebeveyn sınıfın designated başlatıcılarını çağırabilirler. Her sınıfın en az bir designated başlatıcıya sahip olması gerekir.

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) // Ebeveynin designated başlatıcısını çağır
    }

    convenience init(baseProperty: String) { // Kolaylaştırıcı başlatıcı
        self.init(baseProperty: baseProperty, derivedProperty: 0) // Kendi designated başlatıcısına devretme
    }

    convenience init() { // Kolaylaştırıcı başlatıcı
        self.init(baseProperty: "Default Base", derivedProperty: -1) // Kendi designated başlatıcısına devretme
    }
}