0

私の UITextViews は、テキストの選択と削除時にアプリをクラッシュさせます。

ここに画像の説明を入力

切り取り、コピー、貼り付けはうまくいくようです。ログの唯一のエラーは次のとおりです。

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIMenuController view]: unrecognized selector sent to instance 0xff85ac0'

これは通常の UITextView であり、UIMenuController は変更もカスタマイズもされていません。何か案は?

iOS 4.3 および 5.0 のシミュレーターおよびデバイスで発生します。

私が解釈する必要があるスタックトレースを除いて、ゾンビが有効になっている情報はこれ以上ありません..新しいXcodeはこれについて良くありません:

(0x356338bf 0x360ae1e5 0x35636acb 0x35635945 0x35590680 0x37c63925 0x3816b 0x1a557 0x3559222b 0x37a869a7 0x3559222b 0x31671943 0x35607a63 0x356076c9 0x3560629f 0x355894dd 0x355893a5 0x32073fed 0x3794d743 0x29d1 0x2990)
4

2 に答える 2

3

原因は文書化されていません (ドキュメントが見つかった場合は修正してください。この回答を更新します) UIMenuController のデフォルトの使用による動作ですUITextViewUITextFieldUIText*Delegate が を実装している場合、「削除」オプションが追加されますdelete:。メニューから「削除」を選択すると、フィールドのデリゲートがdelete:メッセージで呼び出されます。これは、ブレークポイント リスト ペインに例外ブレークポイントを追加することで発見されました。これにより、元の例外にはなかった適切にシンボル化されたスタック トレースが得られました。delete:(id)sender送信者の使用を必要とする方法でバー ボタン アイテムをサービスするために使用していたため、クラッシュが発生しました。delete:に名前を変更して修正しましたdeletePart:。ユーザーは「切り取り」を選択してテキストを削除できます。

于 2011-11-08T20:23:30.470 に答える
1

viewに送信したということは、送信してはならない場所をUIMenuControllerおそらく割り当てたことを意味します。UIMenuController何かを等しいmenuController(またはインスタンス変数名が何であれ) に設定しているかどうかを確認し、それが問題を引き起こすかどうかを確認します。

UIMenuControllerまた、これは、リリースが早すぎたものによって以前占有されていたメモリ空間にたまたま割り当てられた、コードのかなり早い段階でオーバーリリースが発生している可能性があります。有効NSZombiesにして、エラーの変化を確認します。

于 2011-11-08T17:24:09.540 に答える