2012-03-22 12 views
6

È stato molto strano quando l'ho visto durante il debug della mia applicazione.Molto strano -% non ho funzionato per intero,% d fatto?

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

mi ha dato strFriendID stringa come vuota.

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

mi ha dato strFriendID come .

Come può accadere?

+2

Questo * è * strano, si può verificare con '[str NSString ingWithFormat: @ "[% d |% i]", iTag, iTag] '- qual è il risultato di ciò? (Si noti l'uso di entrambi, le guardie "funzionanti" e zomg-I-was-tricked.) –

+0

L'ho controllato nella mia app .. Funziona bene .. Sia% d che% i mi danno 1 ... –

+0

Esattamente Karan. Non so perché. – Nitish

risposta

2

Non so il motivo per cui si ottiene questa risposta, ma quando ho letto la tua domanda ho provato nel mio progetto ma ottengo il valore

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

Fuori metta

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

entrambi mi dà 1

1

Secondo Apple:

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

Quindi sì è strano che io% non ha funzionato, ma non è così strano che% d ha funzionato.

Forse btnTemp.tag era nulla in quel punto

+0

non può essere nullo, non è un valore di riferimento ... – borrrden

+1

Non è nullo Mako. – Nitish

+0

Questo è più un commento che una risposta, stai semplicemente digitando ciò che è nella testa dell'autore. – iNoob

Problemi correlati