Sobes.tech
Junior — Middle

Kādus objektu inicializācijas metodes jūs zināt un izmantojat klasēs?

sobes.tech AI

Atbilde no AI

iOS (Swift/Objective-C) klases izmanto dažādus metodes objektu inicializēšanai:

  1. Inicializatori (initializers) — īpaši metodes, kas nosaka objekta sākotnējo stāvokli. Swift valodā tas ir init(), Objective-C — -init metodes.

  2. Parametrizētie inicializatori — ļauj iestatīt sākotnējās vērtības, izveidojot objektu.

  3. Delegējošie konstruktoru — viens inicializators izsauc citu, lai izvairītos no koda dublēšanas.

  4. Noklusējuma īpašību izmantošana — klases īpašības var būt ar noklusējuma vērtībām, kas tiek iestatītas objekta izveides laikā.

Piemērs 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, parasti, inicializācija notiek ar -init metodi vai pielāgotiem inicializētājiem, piemēram:

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