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;
}