2012-03-11 9 views
0

でEXC_BAD_ACCESSは、私はこのコードを持っている:spik._idNSInteger異なるint値または同じですか? NSLog

ある

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

をし、これが出力されます:あなたが見

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); 

を書く場合

後、送信者は、何が起こっているEXC_BAD_ACCESS (code = 1, address = 0x30...)

likeButton最初NSLog出力87582784と第二クラッシュですか? とspik._idに異なる値があるのはなぜですか?それとも別のように見えるのですか?

なぜNSLogがと%@で初めて出力され、2度目のクラッシュが発生したのですか?

答えて

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

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

+2

はい、 'tag'はオブジェクトではありません。それはプレーンなバニラC整数です。 ( 'NSInteger'はアーキテクチャに応じて' int'または 'long'のtypedefです。) – Wevah

+1

しかし、実際の値は39975(またはこれのような)です.90793136とは異なります。私はこの長い変わった数字は必要ありません。 –

+0

@Wevah spik._idもNSIntegerです。しかし、なぜ彼らはログに違いがありますか? –

1

NSLogは、%@と異なる解釈がされています。 %dを使用して整数として出力してください。

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

このようにログすれば、出力値は変わりません。どうして?私は変数 –

関連する問題