Очень странно -% я не работал на целое число,% d работал? - PullRequest
6 голосов
/ 22 марта 2012

Было очень странно, когда я увидел это при отладке своего приложения.

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 ]

2 голосов
/ 26 марта 2012

Я не знаю, почему вы получаете этот ответ, но когда я прочитал ваш вопрос, я попытался в своем проекте, но я получил значение

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 голос
/ 22 марта 2012

Согласно Apple :

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

Так что да, это странно, что% я не работал, но это не так странно, что% d работал.

Возможно, в тот момент btnTemp.tag был нулевым

...