Junior — Middle
Jakie typy inicjalizatorów są dostępne do użycia podczas rozszerzania funkcjonalności w Extention?
sobes.tech AI
Odpowiedź od AI
W Swift rozszerzenia (Extensions) nie mogą dodawać nowych inicjalizatorów oznaczonych jako designated (główne), ale mogą dodawać inicjalizatory typu convenience (wygodne), pod warunkiem, że nie kolidują one z istniejącymi. Nie można również nadpisywać istniejących inicjalizatorów.
Oznacza to, że w rozszerzeniach można implementować tylko inicjalizatory convenience, które ułatwiają tworzenie obiektu, wywołując już istniejące inicjalizatory designated.
Przykład:
extension UIColor {
convenience init(hex: String) {
// Konwersja ciągu hex na kolor
self.init(red: 0, green: 0, blue: 0, alpha: 1) // przykład
}
}