2012-03-22 52 views
6

当我在调试我的应用程序时看到这一点非常奇怪。很奇怪 - %我没有为整数工作,%d做到了?

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为。

这是怎么发生的?

+2

即*为*奇怪,你可以用'[的NSString海峡验证ingWithFormat:@“[%d |%i]”,iTag,iTag]' - 那是什么结果? (请注意使用这两个,“工作”第一,和ZOMG我被欺骗的警卫。) – 2012-03-22 06:57:42

+0

我在我的应用程序中检查它。它工作正常..%d和%我给我1 ... – 2012-03-22 07:09:57

+0

准确卡兰。不知道为什么。 – Nitish 2012-03-22 07:20:53

回答

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

出把

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

Apple

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

所以是很奇怪的是%I没有工作,但它不是那么离奇,%d工作。

也许btnTemp.tag是在这一点空

+0

它不能为空,它不是一个参考值... – borrrden 2012-03-22 07:18:21

+1

它不是空的Mako。 – Nitish 2012-03-22 07:20:14

+0

这不仅仅是一个回答的评论,你只是输入作者的头脑中的内容。 – iNoob 2012-03-22 07:20:17