Sobes.tech
Junior — Middle

Ποιες μέθοδοι αρχικοποίησης αντικειμένων γνωρίζεις και χρησιμοποιείς στις κλάσεις;

sobes.tech AI

Απάντηση από AI

Στο iOS (Swift/Objective-C), χρησιμοποιούνται διάφορες μέθοδοι για την αρχικοποίηση αντικειμένων σε κλάσεις:

  1. Αρχικοποιητές (initializers) — ειδικές μέθοδοι που καθορίζουν την αρχική κατάσταση του αντικειμένου. Στο Swift είναι init(), στο Objective-C είναι οι μέθοδοι -init.

  2. Αρχικοποιητές με παραμέτρους — επιτρέπουν τον ορισμό αρχικών τιμών κατά τη δημιουργία του αντικειμένου.

  3. Κατασκευαστές με αναφορά — ένας αρχικοποιητής καλεί έναν άλλο για να αποφευχθεί η διπλή κωδικοποίηση.

  4. Αρχικοποίηση μέσω προεπιλεγμένων ιδιοτήτων — οι ιδιότητες της κλάσης μπορούν να έχουν προεπιλεγμένες τιμές που ορίζονται κατά τη δημιουργία του αντικειμένου.

Παράδειγμα σε Swift:

class Person {
    var name: String
    var age: Int

    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }

    convenience init(name: String) {
        self.init(name: name, age: 0)
    }
}

let p1 = Person(name: "Иван", age: 30)
let p2 = Person(name: "Мария")

Στο Objective-C, η αρχικοποίηση γίνεται συνήθως μέσω της μεθόδου -init ή προσαρμοσμένων αρχικοποιητών, π.χ.:

- (instancetype)initWithName:(NSString *)name age:(NSInteger)age {
    self = [super init];
    if (self) {
        _name = name;
        _age = age;
    }
    return self;
}