2015-06-17 12 views
10

Jestem nowy ze Swift. Odziedziczyłem projekt. Widziałem, jak działa na urządzeniu. Jednak, gdy kasie kod i miał wiele błędów. Udało mi się usunąć błędy. Jednak wpadam na ten, który mnie zaskakuje. Projekt wykorzystuje również pliki xib. Oto kod.Swift, super.init() Musi zadzwonić do wyznaczonego inicjalizatora błędu nadklasy "UIView"

required init(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
    } 

    override init(frame: CGRect) { 
     super.init(frame: frame) 
    } 

    init(items:NSArray, viewController:AnyObject){ 
     super.init() 
     //itemsArray = items 
     itemsArray = items as [AnyObject] 
     //commonInit(viewController as UIViewController) 
     commonInit(viewController as! UIViewController) 
    } 

pojawia się błąd pod init (elementy: NSArray, viewController: AnyObject) metody/funkcji. Błąd jest wskazywany na "super.init()". Podaje on "Musi wywołać określony inicjator błędu nadklasy" UIView ""

Szukałem, googlowałem, pytałem innych i nic się nie pojawiło. Czy mogę uzyskać pomoc dotyczącą usunięcia tego błędu, a przynajmniej dlaczego pojawia się ten błąd? Chciałbym zrozumieć, więc mogę stać się lepszym programistą oprogramowania.

Edytuj: Chciałbym podziękować wszystkim za ich wgląd i pomoc. Odkryłem, że problem jest większy. Wprowadziłem zmiany sugerowane w super.init (frame: CGRect). Musiałem również zmienić właściwość tablicy, która wpłynęła na funkcję init.

+3

spróbuj zmienić super.init() w self.init() – Andrea

+0

@Andrea dzięki mojemu koleśowi –

Odpowiedz

3

Jak sugeruje komunikat o błędzie, można wywołać tylko wskazany inicjator nadklasy. super.init(frame: frame) zamiast super.init()

8

UIView „s wyznaczone inicjalizatory to::

Do tego trzeba zadzwonić rozwiązać

init(frame: CGRect) 
init(coder aDecoder: NSCoder) 

Dzwonisz super.init() który jest inicjator odziedziczone nadklasy NSObject. Zamiast tego użyj jednego z tych inicjatorów, co sugeruje kompilator.

+15

Ta odpowiedź tak naprawdę nie daje więcej informacji niż komunikat o błędzie. – shieldstroy

+0

zgadzam się z @shieldstroy – Confused

Powiązane problemy