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
}
}