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