Sobes.tech
Junior — Middle

Sınıflarda tanıdığınız ve kullandığınız nesne başlatma yöntemleri nelerdir?

sobes.tech yapay zeka

AI'dan gelen yanıt

iOS (Swift/Objective-C) üzerinde, sınıflarda nesneleri başlatmak için çeşitli yöntemler kullanılır:

  1. İlkleyiciler (initializers) — nesnenin başlangıç durumunu belirleyen özel yöntemlerdir. Swift'te init(), Objective-C'de ise -init yöntemleridir.

  2. Parametreli ilkleyiciler — nesne oluşturulurken başlangıç değerleri ayarlamaya olanak tanır.

  3. Delegasyonlu yapıcılar — bir ilkleyici, kod tekrarını önlemek için diğerini çağırır.

  4. Varsayılan özellikler aracılığıyla başlatma — sınıf özellikleri, nesne oluşturulurken ayarlanan varsayılan değerlere sahip olabilir.

Swift örneği:

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'de, genellikle -init veya özel ilkleyiciler aracılığıyla başlatma yapılır, örneğin:

- (instancetype)initWithName:(NSString *)name age:(NSInteger)age {
    self = [super init];
    if (self) {
        _name = name;
        _age = age;
    }
    return self;
}