Junior — Middle
Ի՞նչ մեթոդներ գիտեք և օգտագործում եք օբյեկտների ինիցիալիզացման համար դասերում։
sobes.tech AI
Պատասխան AI-ից
iOS (Swift/Objective-C)-ում տարբեր մեթոդներ են օգտագործվում օբյեկտների սկզբնականացման համար դասերում:
-
Անհատականացնողներ (initializers) — հատուկ մեթոդներ, որոնք սահմանում են օբյեկտի սկզբնական վիճակը: Swift-ում դա
init(), Objective-C-ում՝-initմեթոդները: -
Պարամետրերով անհատականացնողներ — թույլ են տալիս սահմանել սկզբնական արժեքներ օբյեկտի ստեղծման ժամանակ:
-
Դելեգատային կոնստրուկտորներ — մեկը կանչում է մյուսին՝ կոդի կրկնությունը խուսափելու համար:
-
Սահմանում ըստ նախնական հատկությունների — դասի հատկությունները կարող են ունենալ նախնական արժեքներ, որոնք սահմանվում են օբյեկտի ստեղծման ժամանակ:
Օրինակ 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;
}