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

这些是对一个数字的不同表示还是不同的值?为什么这些值不同?

以后如果我写

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

然后发件人是likeButton第一个NSLog输出87582784和第二个崩溃的 地方EXC_BAD_ACCESS (code = 1, address = 0x30...)

发生了什么?为什么likeButton.tag和- 有不同的值spik._id- 或者它们看起来不同?

为什么 NSLog 第一次输出likeButton.tag%@第二次崩溃?

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 回答