Sobes.tech
Junior — Middle

Milyen típusú inicializátorok érhetők el az Extention funkcióinak bővítése során?

sobes.tech MI

Válasz az MI-től

Swiftben a kiterjesztések (Extensions) nem adhatnak hozzá új kijelölt (designated) inicializálókat, de hozzáadhatnak kényelmi (convenience) inicializálókat, feltéve, hogy ezek nem ütköznek a meglévőkkel. Továbbá, nem lehet felülírni a meglévő inicializálókat.

Vagyis, a kiterjesztésekben csak kényelmi inicializálókat lehet megvalósítani, amelyek megkönnyítik egy objektum létrehozását azzal, hogy már létező kijelölt inicializálókat hívnak.

Példa:

extension UIColor {
    convenience init(hex: String) {
        // Hex string átalakítása színné
        self.init(red: 0, green: 0, blue: 0, alpha: 1) // példa
    }
}