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:
-
Initsialiseerijad (initializers) — spetsiaalsed meetodid, mis määravad objekti algseisundi. Swiftis on see
init(), Objective-C-s-initmeetodid. -
Parameetritega initsialiseerijad — võimaldavad määrata algväärtused objekti loomisel.
-
Delegatsiooni kasutavad konstruktorid — üks initsialiseerija kutsub teise, et vältida koodi dubleerimist.
-
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;
}