Приложение вылетает с этим сообщением об ошибке - я не могу найти ничего об этом после поиска в Google - Может кто-нибудь помочь, пожалуйста - PullRequest
1 голос
/ 11 мая 2011

Я не получаю никаких ошибок во время компиляции, и ничего не появляется, когда я запускаю Build & Analyze. Но во время выполнения мое приложение вылетает, когда я щелкаю поле uitext.

-[__NSCFType textFieldDidBeginEditing:]: unrecognized selector sent to instance 0x583cb90

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType textFieldDidBeginEditing:]: unrecognized selector sent to instance 0x583cb90'


0   CoreFoundation               0x00fa25a9 __exceptionPreprocess + 185

1   libobjc.A.dylib      0x010f6313 objc_exception_throw + 44

2   CoreFoundation   0x00fa40bb -[NSObject(NSObject)doesNotRecognizeSelector:] + 187

3   CoreFoundation       0x00f13966 ___forwarding___ + 966

4   CoreFoundation       0x00f13522 _CF_forwarding_prep_0 + 50

5   UIKit    0x00394581 -[UIControl(Deprecated) sendAction:toTarget:forEvent:] + 67

6   UIKit 0x00396e62 -[UIControl(Internal) _sendActionsForEventMask:withEvent:] + 

7   UIKit   0x0039ce11 -[UITextField willAttachFieldEditor:] + 404

8   UIKit   0x003aecdf -[UIFieldEditor becomeFieldEditorForView:] + 653

9   UIKit   0x0039ef98 -[UITextField _becomeFirstResponder] + 99

Ответы [ 2 ]

1 голос
/ 11 мая 2011

Скорее всего, вы либо неправильно сохраняете объект, который вы назначаете в качестве делегата вашего UITextField (например, вы не назначаете его свойству аутлета, объявленному retain в IB), либо вы звоните releaseautorelease на объекте, которым вы не владеете или который вы сохранили в ivar.

Объект в конечном итоге удаляется, и позже в том же месте памяти создается другой объект.Но этот объект, конечно, не реализует протокол UITextFieldDelegate, поэтому, когда текстовое поле пытается отправить ему сообщения делегата, вместо этого выдается эта ошибка.Если бы объект не был создан в той же ячейке памяти, вместо этого вы получили бы сбой с EXC_BAD_ACCESS.

1 голос
/ 11 мая 2011

В Интерфейсном Разработчике (или, возможно, в коде, но, скорее всего, в IB) у вас есть отправленное событие «Редактирование началось», связанное с методом, которого нет в вашем коде;возможно, оно было переименовано или, возможно, вы забыли удалить эту ссылку после удаления действия.

Когда начинается редактирование в вашем textField, приложение пытается вызвать метод, указанный в IB, и завершается неудачно;«нераспознанный селектор» говорит, что он не распознает метод с таким именем.

Либо просто удалите ссылку, либо удалите ее и замените ее соответствующей ссылкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...