3

現在、アプリから次の出力があります。

2012-09-14 11:55:32.558 projectname[2172:707] -[__NSCFBoolean isEqualToString:]:
  unrecognized selector sent to instance 0x3ec4ba18
2012-09-14 11:55:32.570 projectname[2172:707] *** Terminating app due to uncaught 
  exception 'NSInvalidArgumentException', reason: '-[__NSCFBoolean isEqualToString:]: 
  unrecognized selector sent to instance 0x3ec4ba18'
*** First throw call stack:
(0x3263788f 0x3468d259 0x3263aa9b 0x32639915 0x32594650 0x41e47 0x417d3 0x46af7 
  0x320beefb 0x320bdfd9 0x320bd763 0x32061f15 0x325961fb 0x342faaa5 0x342fa6bd 
  0x342fe843 0x342fe57f 0x342f64b9 0x3260bb1b 0x32609d57 0x3260a0b1 0x3258d4a5 
  0x3258d36d 0x316e4439 0x3208ccd5 0x17e77 0x15ca4)
terminate called throwing an exception

BOOL問題は、 aをと比較しようとしていることにあることがわかりますNSString。比較は Web サービスからのデータに基づいており、これBOOLまでは常にそうでした。とにかく、それはこの場合のポイント以外です。

問題の原因となっているコード行を実際に見つけるのに役立つログの情報は何ですか? どのインスタンス (例: 0x3ec4ba18) が原因であるかはわかりますが、ログには行番号はおろか、それらがどのようなタイプであるかさえわかりません。

4

2 に答える 2

2

例外ペイン (左側のサイドバー) に移動し、[+] をクリックして [例外ブレークポイント] を選択して、例外ブレークポイントを追加します。次に、デバッガーを実行すると、トップレベルで例外がキャッチされた (またはキャッチされなかった) ときではなく、例外が実際にスローされた場所で一時停止します。

于 2012-09-14T11:28:00.497 に答える
0

これには多くのチュートリアルがあります。Raywinderlich には、コンソール ログからクラッシュを判断するための優れたチュートリアルの 1 つがあります。ここで入手できます。

アプリがクラッシュしました。- パート1

アプリがクラッシュしました。- パート2

これらに従った後、クラッシュの具体的な理由を知り、これをグーグルで検索すると、簡単に解決できます.

于 2012-09-14T11:33:30.943 に答える