显示键盘时,我正面临着崩溃。正如苹果文档中所建议的那样,我正在侦听键盘发送的通知,以调整文本视图的位置,该视图将被键盘覆盖。在模拟器会话和调试会话中,应用程序首次运行,并且只有在我第一次点击texfield时,应用程序才会崩溃,在控制台中,我收到以下消息:
-[UITextMagnifierCaret keyboardWasShown:]:无法识别的选择器已发送到实例0x3ee2e0 2012-05-02 07:17:49.929
X-X-X-X [316:707] *由于未捕获而终止了应用程序
异常“ NSInvalidArgumentException”,原因:
'-[UITextMagnifierCaret keyboardWasShown:]:无法识别的选择器已发送
到实例0x3ee2e0'
以下是一些线索:
键盘在另一部分之前显示过
如果崩溃已经发生,崩溃将再次发生
它似乎仅在sim和设备上调试时显示,而在ad-hoc中不显示
我的ios版本是5.1
UITextMagnifierCaret不是应用程序的类,但我想是magnigfing类
最佳答案
您将某个对象注册为观察者,然后释放了该对象,但观察者仍指向该内存位置。
关于UITextMagnifierCaret的例外可能是因为曾经分配给观察者的内存位置现在已分配给您不管理的UITextMagnifierCaret对象,并且该对象不响应键盘通知。
使用ARC可能有助于避免此类问题。通常,请确保将要手动释放的对象的指针取消为零或将其删除。