Middle
Ποια είναι η διαφορά μεταξύ των conventions και των designated;
sobes.tech AI
Απάντηση από AI
Οι αρχικοποιητές άνεσης είναι δευτερεύοντες, μπορούν να καλούν μόνο άλλους αρχικοποιητές της ίδιας κλάσης, και τελικά να αναθέτουν την κλήση στον καθορισμένο αρχικοποιητή. Χρησιμοποιούνται για την προσθήκη βολικών τρόπων δημιουργίας στιγμιοτύπων.
Οι καθορισμένοι αρχικοποιητές είναι οι κύριοι, διασφαλίζουν την πλήρη αρχικοποίηση όλων των αποθηκευμένων ιδιοτήτων της κλάσης (των δικών τους και των γονικών). Μπορούν να καλούν καθορισμένους αρχικοποιητές της γονικής κλάσης. Κάθε κλάση πρέπει να έχει τουλάχιστον έναν καθορισμένο αρχικοποιητή.
class BaseClass {
var baseProperty: String
init(baseProperty: String) { // Καθορισμένος αρχικοποιητής
self.baseProperty = baseProperty
}
}
class DerivedClass: BaseClass {
var derivedProperty: Int
init(baseProperty: String, derivedProperty: Int) { // Καθορισμένος αρχικοποιητής
self.derivedProperty = derivedProperty
super.init(baseProperty: baseProperty) // Κλήση στον καθορισμένο αρχικοποιητή της γονικής
}
convenience init(baseProperty: String) { // Αρχικοποιητής άνεσης
self.init(baseProperty: baseProperty, derivedProperty: 0) // Αναθέτει στον δικό του καθορισμένο
}
convenience init() { // Αρχικοποιητής άνεσης
self.init(baseProperty: "Default Base", derivedProperty: -1) // Αναθέτει στον δικό του καθορισμένο
}
}