1

キーボードが表示されているときに、そのクラッシュに直面しています。Appleのドキュメントで示唆されているように、私はキーボードから送信される通知を聞いて、キーボードでカバーされるテキストビューの位置を調整しています。シミュレーターセッションとデバッグセッションで、アプリが初めて実行され、texfieldを初めてタップするとアプリがクラッシュしますが、コンソールに次のメッセージが表示されます。

-[UITextMagnifierCaretkeyboardWasShown:]:認識されないセレクターがインスタンス0x3ee2e0に送信されました2012-05-02 07:17:49.929 XXXX [316:707] *キャッチされない例外'NSInvalidArgumentException'、理由:'-[UITextMagnifierCaretkeyboardWasShown:]:認識されないセレクターがインスタンス0x3ee2e0'に送信されました

ここにいくつかの手がかりがあります:

  1. キーボードは以前別のセクションで表示されていました
  2. クラッシュnevrがすでに発生している場合は、再び発生します
  3. simとデバイスでのデバッグ中にのみ表示されるようですが、アドホックでは表示されません
  4. 私のiOSバージョンは5.1です
  5. UITextMagnifierCaretはアプリのクラスではありませんが、magnigfingクラスだと思います
4

1 に答える 1

1

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

ARCを使用すると、この種の問題を回避できる可能性があります。通常、手動で解放しようとしているオブジェクトへのポインタは、必ずゼロにするか削除してください。

于 2012-05-02T07:10:52.810 に答える