0

私はこのコードを持っています:

likeButton.tag = spik._id;
NSLog(@"spik ID=%@   likebtn.tag=%@",spik._id,likeButton.tag);
NSLog(@"%@", likeButton);

どこにspik._idありますかNSInteger

そしてこれは出力です:

2012-03-11 19:35:37.751 KwikSpik[44277:ce03] spik ID=39975   likebtn.tag=39975   
2012-03-11 19:35:37.752 KwikSpik[44277:ce03] <<UIButton: 0xd178b60; frame = (20 12604; 30 30); opaque = NO; tag = 90793136; layer = <CALayer: 0xd1788d0>>

ここに表示されlikeButton.tag = 39975ますが、ボタンをログに記録すると、そのタグは90793136です。

私が書いたらNSLog(@"spik ID=%@ likebtn.tag=%d",spik._id,likeButton.tag);

それから私は得る

012-03-11 23:27:38.290 KwikSpik[45326:ce03] spik ID=39975 likebtn.tag=87582784

これらの異なる表現は、1つの数値ですか、それとも異なる値ですか?これらの値が異なるのはなぜですか?

後で書くなら

NSLog(@"tag d %d",sender.tag);
NSLog(@"tag @ %@",sender.tag);

ここで、送信者はlikeButton最初のNSLog出力87582784であり、2番目のクラッシュは EXC_BAD_ACCESS (code = 1, address = 0x30...)

何が起こっていますか?likeButton.tagとに異なる値があるのはなぜspik._idですか?またはそれらは単に異なるように見えますか?

NSLogが最初に出力さlikeButton.tag%@、2回目にクラッシュしたのはなぜですか?

4

2 に答える 2

1

NSLogあなたが使用したように、それらは異なって解釈されています%@%d整数として出力するために使用します。

NSLog(@"spik ID=%d   likebtn.tag=%d", spik._id,likeButton.tag);
于 2012-03-11T16:56:45.283 に答える
1
NSLog(@"spik ID=%@ likebtn.tag=%d", spik._id, likeButton.tag);

ボタンをログに記録すると、タグは int とは見なされません。

于 2012-03-11T14:54:56.747 に答える