Sobes.tech
Junior — Middle

Milliseid objektide initsialiseerimise meetodeid teate ja kasutate klassides?

sobes.tech AI

Vastus AI-lt

iOS (Swift/Objective-C) klassides kasutatakse erinevaid meetodeid objektide algseks seadistamiseks:

  1. Initsialiseerijad (initializers) — spetsiaalsed meetodid, mis määravad objekti algseisundi. Swiftis on see init(), Objective-C-s -init meetodid.

  2. Parameetritega initsialiseerijad — võimaldavad määrata algväärtused objekti loomisel.

  3. Delegatsiooni kasutavad konstruktorid — üks initsialiseerija kutsub teise, et vältida koodi dubleerimist.

  4. Vaikimisi omaduste kasutamine — klassi omadustel võivad olla vaikimisi väärtused, mis määratakse objekti loomisel.

Näide Swiftis:

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-s toimub algus tavaliselt -init meetodi või kohandatud initsialiseerijate kaudu, näiteks:

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