NSInteger myInt = 1804809223;
NSLog(@"%i", myInt); <====
Yukarıdaki kod bir hata üretir:
'NSInteger' türündeki değerler biçim bağımsız değişkenleri olarak kullanılmamalıdır; bunun yerine "uzun" a açık bir döküm ekleyin
Düzeltilen NSLog
mesaj aslında NSLog(@"%lg", (long) myInt);
. Neden tamsayı değeri dönüştürmek zorunda myInt
için long
ben ekrana değeri isterseniz?
NSInteger
olduğu değil uzunluğunda), ancak (OS X hedef ile topluyoruz gibi geliyor NSInteger
ise long
).
NSLog(@"%ld", (long) myInt);
,long
döküm onunla maç yapmaktırl
arasında eleme%ld
, ancak bütün bunlar gereksizdirNSLog(@"%d", myInt);
(yeterli biz görüyoruz ki göz önüne alındığındamyInt
değillong
. Alt satırda, dökmemyInt
biçiminde uzun eleme kullanılıyorsa dize, ancak uzun dize biçimi niteleyicisi kullanmaya veyalong
burada yayınlamaya gerek yok