Sobes.tech
Junior — Middle

Koje metode inicijalizacije objekata poznaješ i koristiš u klasama?

sobes.tech АИ

Одговор од АИ

U iOS (Swift/Objective-C) koriste se različite metode za inicijalizaciju objekata u klasama:

  1. Inicijalizatori (initializers) — posebne metode koje postavljaju početno stanje objekta. U Swift-u je to init(), a u Objective-C-u metode -init.

  2. Inicijalizatori sa parametrima — omogućavaju postavljanje početnih vrednosti prilikom kreiranja objekta.

  3. Delegirani konstruktori — jedan inicijalizator poziva drugi da bi se izbeglo dupliranje koda.

  4. Inicijalizacija putem podrazumevanih svojstava — svojstva klase mogu imati podrazumevane vrednosti koje se postavljaju prilikom kreiranja objekta.

Primer u Swift-u:

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

U Objective-C, inicijalizacija se obično vrši putem metode -init ili prilagođenih inicijalizatora, na primer:

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