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