Sobes.tech
Junior — Middle

Jakie metody inicjalizacji obiektów znasz i używasz w klasach?

sobes.tech AI

Odpowiedź od AI

W iOS (Swift/Objective-C) używa się różnych metod do inicjalizacji obiektów w klasach:

  1. Inicjalizatory (initializers) — specjalne metody, które ustalają stan początkowy obiektu. W Swift to init(), w Objective-C to metody -init.

  2. Inicjalizatory z parametrami — pozwalają na ustawienie wartości początkowych podczas tworzenia obiektu.

  3. Konstruktory z delegacją — jeden inicjalizator wywołuje inny, aby uniknąć duplikacji kodu.

  4. Inicjalizacja przez właściwości domyślne — właściwości klasy mogą mieć wartości domyślne, które są ustawiane podczas tworzenia obiektu.

Przykład w 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: "Мария")

W Objective-C inicjalizacja zwykle odbywa się przez metodę -init lub niestandardowe inicjalizatory, na przykład:

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