2016-09-16 4 views
0

В моем проекте я хочу отобразить всплывающее окно, и представление этого всплывающего окна определено в файле .xib. Для этого я использую эту строку кода:Быстрая ошибка IBOutlet с xib-файлом

myPopupView = NSBundle.mainBundle().loadNibNamed("NibView", owner: self, options: nil)[0] as! UIView 

До тех пор, она работает. Но проблема в том, что я пытаюсь добавить IBOutlet. Мой Xib-файл связан с uiviewcollection, и мне удается создать IBOutlet на Textfield, который у меня есть в файле xib. Но когда я снова запускаю свое приложение, у меня есть это знаменитое сообщение: этот класс не является ключевым значением, совместимым с кодированием для ключа ...

Итак, если я смотрю в Интернете, каждый говорит, что нужно удалить IBOutlet, нажав на крестике в инспекторе, НО я не хочу его удалять, потому что мне это нужно IBOutlet. Так что не возможно ли IBOutlet в xib-файле?

Спасибо :)

ответ

1

Это очень распространенная ошибка, которая означает, что IBOutlet вы взяли в .xib не подключен к соответствующему классу. Такая ошибка, с которой я сталкиваюсь, когда я выбрал выход и получил некоторое имя, например lblUserName, но позже я переименовал его в lblFriendName, тогда метка в xib все еще подключена к lblUserName, а также lblFriendName, поэтому во время компиляции xib не найти соединение для lblUserName и выдает ошибку.

Итак, перейдите к своему xib, щелкните правой кнопкой мыши по розетке в xib, после чего вы увидите крест-кнопку для разъединения. Поэтому отключите его и снова подключите.

Во время этого вы также можете увидеть имя соединения, это должно быть неправильное имя, или будет два соединения, один и тот же ярлык, в котором он будет правильным, а другой должен быть неправильным (этот случай, когда вы переименовываете соединение как я объяснил)

Надеюсь, вы понимаете, и это помогает ...

Счастливый кодирования ...

+0

Ваше объяснение очень ясно, но, к сожалению, до сих пор не работает, даже если бы я попробовал много времени, чтобы отключить розетку и подключить новую. Но я, возможно, видел эту проблему. Фактически полное сообщение об ошибке: [ setValue: forUndefinedKey:]: этот класс не является ключевым значением, совместимым с кодировкой для ключа btnCreate ... Но имя контроллера для этого файла XIB не является ProjectController, но NewProject .... Возможно ли, что файл xib подключен к неправильному контроллеру? Но в инспекторе я определил хороший – Adz

+0

Если вы можете описать соединение и показать какое-то графическое представление о подключении, это может помочь мне быстро найти проблему. – Janmenjaya

+0

Если вы скопировали xib из какого-либо другого проекта, тогда xib указывать на неправильное соединение, поскольку его нет. В соответствии с вашим описанным комментарием соединение btnCreate имеет проблемы. – Janmenjaya

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