Sobes.tech
Junior — Middle

Ի՞նչ տեսակի սկզբնավորողներ կան, որոնք հասանելի են Extention-ում գործառույթը ընդլայնելիս օգտագործելու համար։

sobes.tech AI

Պատասխան AI-ից

Swift- ում ընդարձակումները (Extensions) չեն կարող ավելացնել նոր նշանակված (designated) սկզբնավորիչներ, բայց կարող են ավելացնել convenience (հարմարավետություն) սկզբնավորիչներ, եթե դրանք չեն հակասում առկաներին։ Բացի այդ, չի թույլատրվում վերագրել առկա սկզբնավորիչները։

Արդյունքում, ընդարձակումներում կարող են իրականացնել միայն convenience սկզբնավորիչներ, որոնք հեշտացնում են օբյեկտի ստեղծումը՝ կանչելով արդեն առկա նշանակված սկզբնավորիչները։

Օրինակ՝

extension UIColor {
    convenience init(hex: String) {
        // Hex տողը փոխակերպել գույնի
        self.init(red: 0, green: 0, blue: 0, alpha: 1) // օրինակ
    }
}