Sobes.tech
Junior — Middle

Ի՞նչ մեթոդներ գիտեք և օգտագործում եք օբյեկտների ինիցիալիզացման համար դասերում։

sobes.tech AI

Պատասխան AI-ից

iOS (Swift/Objective-C)-ում տարբեր մեթոդներ են օգտագործվում օբյեկտների սկզբնականացման համար դասերում:

  1. Անհատականացնողներ (initializers) — հատուկ մեթոդներ, որոնք սահմանում են օբյեկտի սկզբնական վիճակը: Swift-ում դա init(), Objective-C-ում՝ -init մեթոդները:

  2. Պարամետրերով անհատականացնողներ — թույլ են տալիս սահմանել սկզբնական արժեքներ օբյեկտի ստեղծման ժամանակ:

  3. Դելեգատային կոնստրուկտորներ — մեկը կանչում է մյուսին՝ կոդի կրկնությունը խուսափելու համար:

  4. Սահմանում ըստ նախնական հատկությունների — դասի հատկությունները կարող են ունենալ նախնական արժեքներ, որոնք սահմանվում են օբյեկտի ստեղծման ժամանակ:

Օրինակ 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-ում, որպես կանոն, սկսում են -init կամ հատուկ անհատականացնողներով՝ օրինակ՝

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