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