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