仅在第一次运行应用程序时显示键盘时崩溃

时间:2012-05-02 05:27:32

标签: iphone ios keyboard uitextfield

键盘显示时,我正面临崩溃。正如Apple文档中所建议的那样,我正在收听键盘发送的通知,以调整将被键盘覆盖的textview的位置。在模拟器会话和第一次应用程序运行时的调试会话中,只有第一次点击应用程序崩溃的texfield时,在控制台中我收到此消息:

  

- [UITextMagnifierCaret keyboardWasShown:]:无法识别的选择器发送到实例0x3ee2e0 2012-05-02 07:17:49.929   X-X-X-X [316:707] * 由于未被捕获而终止应用程序   异常'NSInvalidArgumentException',原因:   ' - [UITextMagnifierCaret keyboardWasShown:]:发送无法识别的选择器   例如0x3ee2e0'

以下是一些线索:

  1. 键盘在之前的另一部分中显示
  2. 如果已经发生崩溃nevr再次发生
  3. 它似乎只在sim和设备上调试时显示,而不是在ad-hoc
  4. 中显示
  5. 我的ios版本是5.1
  6. UITextMagnifierCaret不是应用程序的类,但我想是放大级别的

1 个答案:

答案 0 :(得分:1)

您将某个对象注册为观察者,然后取消分配该对象,但观察者仍然指向该内存位置。 关于UITextMagnifierCaret的例外可能是因为曾经分配给您的观察者的内存位置现在被分配给您不管理的UITextMagnifierCaret对象,并且不响应键盘通知。

使用ARC可能有助于避免此类问题。通常,请确保nil或删除指向您要手动释放的对象的任何指针。