NSInteger myInt = 1804809223;
NSLog(@"%i", myInt); <====
Il codice sopra produce un errore:
I valori di tipo 'NSInteger' non devono essere usati come argomenti di formato; aggiungi invece un cast esplicito a 'long'
Il NSLogmessaggio corretto è in realtà NSLog(@"%lg", (long) myInt);. Perché devo convertire il valore intero di myIntin longse desidero visualizzare il valore?
NSInteger è lungo), ma sembra che stai compilando con il target OS X (dove si trova ). NSInteger long
NSLog(@"%ld", (long) myInt);, illongcast è quello di farlo combaciare con illqualificatore di%ld, ma tutto ciò non è necessario in quantoNSLog(@"%d", myInt);è sufficiente (dato che possiamo vedere chemyIntnon lo èlong. In conclusione, si lanciamyIntse si utilizza un qualificatore lungo in formato stringa, ma non è necessario utilizzare il qualificatore di formato stringa lungo o illongcast qui.