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ę UIViewControllerutworzyć 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, NSURLktó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 requiredsł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 conveniencejeden? Wyznaczony? Czy nazywam super inicjalizator? Inicjator z tej samej klasy?
Jak dodać mój specjalny inicjator do UIViewControllerpodklasy?