应用程序崩溃与此错误消息 - 谷歌搜索后我找不到任何相关的东西 - 有人可以帮助请

时间:2011-05-11 01:37:06

标签: iphone crash

当我运行Build& amp时,我没有得到任何编译时错误,也没有出现任何问题。分析。但是在运行时,当我点击uitextfield时,我的应用程序崩溃了。

-[__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 个答案:

答案 0 :(得分:1)

在Interface Builder中(或者可能在代码中,但更可能是IB),您可以将“Editing Did Begin”发送事件链接到代码中不存在的方法;也许它被重命名,或者你可能在删除动作后忽略删除该链接。

当你在textField中开始编辑时,app会尝试调用IB中指示的方法并失败; “无法识别的选择器”表示它无法识别该名称的方法。

要么删除链接,要么删除它,并用适当的链接替换它。

答案 1 :(得分:1)

您可能没有正确保留您指定为UITextField代理的对象(例如,您没有将其分配给IB中声明为retain的outlet属性),或者您正在调用{{ 1}}或release在您不拥有或保存为ivar的对象上。

最终会丢弃对象,稍后会在同一内存位置创建不同的对象。但是,该对象当然没有实现UITextFieldDelegate协议,因此当文本字段尝试向其发送委托消息时,它会为您提供该错误。如果不在同一个内存位置创建对象,则会发生EXC_BAD_ACCESS崩溃。