很奇怪 - %i 不适用于整数,%d 可以吗?
Posted
技术标签:
【中文标题】很奇怪 - %i 不适用于整数,%d 可以吗?【英文标题】:Very strange - %i didn't work for integer, %d did? 【发布时间】:2012-04-06 17:49:56 【问题描述】:当我在调试我的应用程序时看到这个很奇怪。
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。
怎么会这样?
【问题讨论】:
那很很奇怪,你能用[NSString stringWithFormat:@"[%d|%i]",iTag,iTag]
验证一下——那是什么结果? (注意两者的用法,首先是“工作”,然后是 zomg-I-was-triked 警卫。)
我在我的应用程序中检查了它。它工作正常。%d 和 %i 都给了我 1...
正是卡兰。不知道为什么。
我怀疑是否有答案!这真的很奇怪!
【参考方案1】:
我不知道你为什么得到这个答案,但是当我读到你的问题时,我在我的项目中尝试过,但我得到了价值
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
【讨论】:
【参考方案2】:根据Apple:
%d, %D and %i all represent Signed 32-bit integers.
是的,%i 没有工作很奇怪,但 %d 工作并不奇怪。
也许当时 btnTemp.tag 为空
【讨论】:
这更像是一个评论而不是一个答案,你只是在输入作者的想法。 好吧,我会发表评论,但我的代表还不够高:p以上是关于很奇怪 - %i 不适用于整数,%d 可以吗?的主要内容,如果未能解决你的问题,请参考以下文章
变量不适用于 .animate() 中的 scrollTop 值
相机 API 适用于 Jelly Bean 但不适用于 Kitkat