Przepraszam, jeśli pytano o to wcześniej, dużo szukałem i wiele odpowiedzi pochodzi z wcześniejszych wersji beta Swift, kiedy sprawy wyglądały inaczej. Nie mogę znaleźć ostatecznej odpowiedzi.
Chcę UIViewController
utworzyć podklasę i mieć niestandardowy inicjator, który pozwoli mi łatwo skonfigurować go w kodzie. Mam problem z zrobieniem tego w Swift.
Potrzebuję init()
funkcji, której mogę użyć do przekazania określonej funkcji, NSURL
której będę używać z kontrolerem widoku. W mojej głowie wygląda to tak init(withImageURL: NSURL)
. Jeśli dodam tę funkcję, prosi mnie o dodanie init(coder: NSCoder)
funkcji.
Wydaje mi się, że dzieje się tak, ponieważ jest oznaczony w superklasie required
słowem kluczowym? Więc muszę to zrobić w podklasie? Dodaję to:
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
Co teraz? Czy mój specjalny inicjator jest uważany za convenience
jeden? Wyznaczony? Czy nazywam super inicjalizator? Inicjator z tej samej klasy?
Jak dodać mój specjalny inicjator do UIViewController
podklasy?