Sobes.tech
Junior — Middle

რა მეთოდებს იცნობ და იყენებ ობიექტების ინიციალიზაციისთვის კლასებში?

sobes.tech AI

პასუხი AI-სგან

iOS (Swift/Objective-C) ში, კლასებში ობიექტების დასაწყებად გამოიყენება სხვადასხვა მეთოდები:

  1. ინიციალიზატორები (initializers) — სპეციალური მეთოდები, რომლებიც ადგენენ ობიექტის საწყის მდგომარეობას. Swift-ში ეს არის init(), Objective-C-ში — -init მეთოდები.

  2. პარამეტრიანი ინიციალიზატორები — საშუალებას აძლევს განსაზღვრო საწყის მნიშვნელობებს ობიექტის შექმნისას.

  3. დელეგაციური კონსტრუქტორები — ერთი ინიციალიზატორი ახორციელებს მეორეს, რათა თავიდან აიცილოს კოდის დუბლირება.

  4. ძირითადი თვისებებით დასაწყებად — კლასის თვისებები შეიძლება ჰქონდეთ საწყის მნიშვნელობებს, რომლებიც ინიშნება ობიექტის შექმნისას.

მაგალითი 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;
}