Junior — Middle
Kokius objektų inicializavimo metodus žinote ir naudojate klasėse?
sobes.tech AI
Atsakymas iš AI
„iOS“ (Swift/Objective-C) klasėse objektų inicializavimui naudojami įvairūs metodai:
-
Inicializatoriai (initializers) — specialūs metodai, kurie nustato objekto pradinę būseną. Swift kalboje tai
init(), Objective-C —-initmetodai. -
Parametriniai inicializatoriai — leidžia nustatyti pradines reikšmes kuriant objektą.
-
Deleguojantys konstruktoriai — vienas inicializatorius iškviečia kitą, siekiant išvengti kodo dubliavimo.
-
Numatytųjų savybių naudojimas — klasės savybės gali turėti numatytąsias reikšmes, kurios nustatomos kuriant objektą.
Pavyzdys Swift kalba:
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 dažniausiai inicializacija vyksta per -init metodą arba pritaikytus inicializatorius, pavyzdžiui:
- (instancetype)initWithName:(NSString *)name age:(NSInteger)age {
self = [super init];
if (self) {
_name = name;
_age = age;
}
return self;
}