Sobes.tech
Junior — Middle

Milyen objektum inicializációs módszereket ismersz és használsz osztályokban?

sobes.tech MI

Válasz az MI-től

Az iOS (Swift/Objective-C) környezetben különböző módszerek vannak az objektumok inicializálására osztályokban:

  1. Inicializálók (initializers) — speciális módszerek, amelyek meghatározzák az objektum kezdeti állapotát. Swift-ben ez init(), Objective-C-ben pedig a -init módszer.

  2. Paraméteres inicializálók — lehetővé teszik az alapértékek beállítását az objektum létrehozásakor.

  3. Delegációs konstruktorok — egy inicializáló hív egy másikat, hogy elkerülje a kódduplikációt.

  4. Alapértelmezett tulajdonságokon keresztüli inicializálás — az osztály tulajdonságai alapértelmezett értékekkel rendelkezhetnek, amelyeket az objektum létrehozásakor állítanak be.

Swift példával:

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-ben az inicializálás általában az -init vagy egyedi inicializátorokon keresztül történik, például:

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