很奇怪 - %我没有为整数工作,%d呢?

时间:2012-03-22 06:53:30

标签: iphone objective-c ios nsstring integer

当我在调试我的应用程序时看到这个时,这很奇怪。

int iTag = btnTemp.tag;    //btnTemp.tag = 1
NSString *strFriendID = [NSString stringWithFormat:@"%i",iTag];  

strFriendID 作为空字符串。

int iTag = btnTemp.tag;       //btnTemp.tag = 1
NSString *strFriendID = [NSString stringWithFormat:@"%d",iTag];

strFriendID 作为 1 给了我。

这怎么可能发生?

2 个答案:

答案 0 :(得分:2)

我不知道你为什么得到这个答案,但当我读到你的问题时,我在我的项目中尝试了但是我得到了价值

UIButton *btnTemp = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
btnTemp.tag = 1;
int iTag = btnTemp.tag;    //btnTemp.tag = 1
NSString *strFriendID = [NSString stringWithFormat:@"%i",iTag];  
NSLog(@"Str %@", strFriendID);
NSString *strFriendID1 = [NSString stringWithFormat:@"%d",iTag];  
NSLog(@"Str %@", strFriendID1);

Out Put

2012-03-26 10:32:02.899 Leaves[506:f803] Str 1
2012-03-26 10:32:02.901 Leaves[506:f803] Str 1

两个都给了我1个

答案 1 :(得分:1)

根据Apple

 %d, %D and %i all represent Signed 32-bit integers.

所以是的,奇怪的是%i没有用,但是%d工作并不是那么奇怪。

或许btnTemp.tag在那时为空