Milyen objektum inicializációs módszereket ismersz és használsz osztályokban?
sobes.tech MI
Válasz az MI-től
Az iOS (Swift/Objective-C) környezetben különböző módszerek vannak az objektumok inicializálására osztályokban:
-
Inicializálók (initializers) — speciális módszerek, amelyek meghatározzák az objektum kezdeti állapotát. Swift-ben ez
init(), Objective-C-ben pedig a-initmódszer. -
Paraméteres inicializálók — lehetővé teszik az alapértékek beállítását az objektum létrehozásakor.
-
Delegációs konstruktorok — egy inicializáló hív egy másikat, hogy elkerülje a kódduplikációt.
-
Alapértelmezett tulajdonságokon keresztüli inicializálás — az osztály tulajdonságai alapértelmezett értékekkel rendelkezhetnek, amelyeket az objektum létrehozásakor állítanak be.
Swift példával:
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-ben az inicializálás általában az -init vagy egyedi inicializátorokon keresztül történik, például:
- (instancetype)initWithName:(NSString *)name age:(NSInteger)age {
self = [super init];
if (self) {
_name = name;
_age = age;
}
return self;
}