2012-05-02 24 views
1

キーボードが表示されている間、クラッシュに直面しています。 Apple docsで提案されているように、私はキーボードから送られてきたテキストビューの位置を調整するためにキーボードから送られた通知を聞いています。 - [UITextMagnifierCaret
初めてアプリを起動したときにキーボードが表示されている間にクラッシュする

:私はtexfieldでアプリがクラッシュをタップすると、シミュレータのセッションでは初めてで、セッションのデバッグにアプリがコンソールに私はこのメッセージを持っている、とだけ最初の時間を実行していますkeyboardWasShown:]:[316 49.929 XXXX:17:未認識セレクタインスタンス0x3ee2e0 2012-05-02 07に送信によるキャッチされない例外 'NSInvalidArgumentException'、理由にアプリを終了707] *: 「 - [UITextMagnifierCaret keyboardWasShown。 ]:認識できないセレクタがインスタンス0x3ee2e0に送信 '

は、ここではいくつかの手がかりです:それはすでに起こっている場合

  1. キーボードショーは別のセクションで前にいた
  2. クラッシュがnevr再び起こる
  3. 唯一のシムと、デバイス上のデバッグ中に現れているようだ
  4. しかし、アドホック
  5. に私のIOSのバージョンは5.1
  6. UITextMagnifierCaretアプリのクラスではありませんが、私はmagnigfingクラス
ある推測ではありません
+1

解決策が見つかったので、オブジェクトが割り当て解除される前にオブザーバとしてオブジェクトを削除するのを忘れました。それで通知が送られたとき、それはゾンビにも送られました。私はUITextMagnifierCaretの扱いについては説明できません。それが最初に起こったという事実は、他のテキストフィールドがアプリへの最初のアクセスのみが表示されているということです。誰かがオブザーバーを削除する重要性についての回答を書いたければ、私はそれを受け入れます。 – Andrea

答えて

1

オブジェクトをオブザーバとして登録し、後でそのオブジェクトの割り当てを解除しましたが、オブザーバはまだそのメモリ位置を指していました。 UITextMagnifierCaretに関する例外は、オブザーバに割り当てられたメモリ位置が、管理していないUITextMagnifierCaretオブジェクトに割り当てられ、キーボード通知に応答しないためです。

ARCを使用すると、このような問題を避けることができます。一般的には、手動で解放しようとしているオブジェクトへのポインタを無くしたり削除したりしてください。

関連する問題