Странная проблема с файлом XIB - PullRequest
0 голосов
/ 07 ноября 2011

Испытывает странную проблему в модифицированной программе, написанной мной.В моей первой итерации контроллер представления имел IBAction под названием userSpecifyingInput и все мои кнопки были подключены к этому IBAction.Чтобы сделать дизайн более сложным, я ввел userSpecifyingDigit и userSpecifyingLetter и, соответственно, имел несколько кнопок, соединяющих первый IBAction (userSpecifyingDigit), и следующую кнопку, соединяющих второй IBAction (userSpecifyingLetter).После запуска моей программы она выдала мне следующую ошибку:

Завершение приложения: NSInvalidArgumentException Нераспознанный селектор отправлен в экземпляр

И эти селекторы чередовались между userSpecifyingInput и userSpecifyingDigit, что не имело смысла, так как userSpecifyingInput было полностьюудалены из моего интерфейса ViewControllers и реализации.

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

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

Я что-то здесь упустил?Это довольно открытый вопрос с разными ответами

Ответы [ 2 ]

0 голосов
/ 05 июня 2012

Похоже, что xib все еще думает, что один из его объектов подключен к UIViewController, но функции в UIViewController больше нет. Чтобы проверить и исправить это ...

  1. Нажмите на файл xib в навигаторе проекта
  2. Выберите владельца файла
  3. Нажмите на Инспектора соединений
  4. Убедитесь, что ни одно из этих соединений недействительно

Я бы также заглянул в UIViewController, чтобы убедиться, что здесь не существует автоматически созданных ссылок.

0 голосов
/ 07 ноября 2011

Исключение IBAction из вашей реализации не приведет к удалению каких-либо предыдущих ссылок на него в IB. Я не слышал о каких-либо предпочтениях XCode / IB для решения этой проблемы.

...