Sobes.tech
Junior — Middle

Aké typy inicializátorov sú k dispozícii na použitie pri rozširovaní funkčnosti v Extention?

sobes.tech AI

Odpoveď od AI

V jazyku Swift nemôžu rozšírenia (Extensions) pridávať nové označené (designated) inicializátory, ale môžu pridávať inicializátory typu convenience (pohodlné), pokiaľ s tými existujúcimi nekonflikujú. Taktiež nie je možné prepísať existujúce inicializátory.

To znamená, že v rozšíreniach je možné implementovať iba inicializátory typu convenience, ktoré uľahčujú vytváranie objektu volaním už existujúcich označených inicializátorov.

Príklad:

extension UIColor {
    convenience init(hex: String) {
        // Konverzia hex reťazca na farbu
        self.init(red: 0, green: 0, blue: 0, alpha: 1) // príklad
    }
}