0

ARCプロジェクトを実行していますが、プロジェクトを台無しにしていることに気づきました。次のコードブロックでは、

- (void)didTapSuggestionButton:(id)sender {
//[_buttonDelegate suggestionButtonPressed:[sender currentTitle]];
//NSLog(@"current title is %@",[sender currentTitle]);
}

最初の行のブレークポイントで、デバッグコンソールに次のように表示されます。

self freeFormAutoCompleteScroller * const 0x0000ace9

UIScrollView UIScrollView

SuggestionButtons NSMutableArray * 0x6e65006e

_buttonDelegate objc_object * 0x00646564

isa objc_class * 0x00000008

送信者ID0x06d7f3f0[0] id


ただし、2行目には次のように表示されます。

self freeFormAutoCompleteScroller * const 0x06d7f3f0

UIScrollView UIScrollView SuggestionButtons NSMutableArray * 0x00000000

_buttonDelegate objc_object * 0x00000000

isaobjc_class*送信者ID0x06babf30[0] id


「自己」は別のメモリアドレスを参照し始めましたか?何もしなかった時も?どうしたの?

4

4 に答える 4

0

これは、コードが別のスレッドで同時に呼び出されていることが原因である可能性があります。コール スタックを確認してください。

于 2012-07-01T08:27:39.040 に答える
0

書くべきではないか

NSLog(@"current title is %@",[sender currentTitle]);

?

于 2012-07-01T08:30:03.563 に答える
0

クーリオ、

最初のダンプの値の多くは初期化されていません。例えば:

self freeFormAutoCompleteScroller *const 0x0000ace9

self奇数になることはありません。

以下は、クラス オブジェクトの非常にありそうもないアドレスです。

isa objc_class * 0x00000008

ボタンを押すretainオブジェクトを何らかの形で認識していないのではないかと思います。targetつまり、ランダム メモリを実行しようとしています。あなたの問題はこの方法ではありません。

アンドリュー

于 2012-07-01T15:24:26.967 に答える
0

UIButton によって呼び出された場合は、(id)sender を "(UIButton *)sender" に変更してみてください

于 2012-07-01T15:27:01.447 に答える