2015-06-17 2 views
10

Я новичок в Swift. Я унаследовал проект. Я видел, как он работает на устройстве. Однако, когда я проверяю код, у него было много ошибок. Я смог убрать ошибки. Однако я сталкиваюсь с этим, что меня озадачивает. Проект также использует xib-файлы. Вот код.Swift, super.init() Должен вызывать назначенный инициализатор ошибки суперкласса '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) 
    } 

я получаю ошибку при инициализации (пункты: NSArray, ViewController: AnyObject) метода/функции. Ошибка указана на «super.init()». В нем говорится: «Должен вызывать назначенный инициализатор ошибки суперкласса« UIView »«

Я искал, искал, спрашивал других, и ничего не появилось. Могу ли я получить помощь по исправлению этой ошибки или, по крайней мере, почему эта ошибка происходит? Я бы хотел понять, чтобы стать лучшим разработчиком программного обеспечения.

Редактировать: Я хочу поблагодарить всех за их понимание и помощь. Я узнал, что проблема больше. Я сделал изменения, предложенные в super.init (frame: CGRect). Мне также пришлось изменить свойство массива, которое повлияло на функцию init.

+3

попытаться изменить super.init() in self.init() – Andrea

+0

@Andrea благодарит моего чувака –

ответ

3

Как видно из сообщения об ошибке, вы можете вызвать только назначенный инициализатор суперкласса.

Чтобы решить эту проблему вам нужно позвонить: super.init(frame: frame) вместо super.init()

8

UIView «s назначенные Инициализаторы являются:

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

Вы звоните super.init(), который инициализатор унаследовал от своего суперкласса NSObject. Вместо этого используйте один из этих инициализаторов, как это предлагает компилятор.

+15

Этот ответ на самом деле не дает больше информации, чем сообщение об ошибке. – shieldstroy

+0

согласен с @shieldstroy – Confused

Смежные вопросы