NSInteger myInt = 1804809223;
NSLog(@"%i", myInt); <====
Kode di atas menghasilkan kesalahan:
Nilai tipe 'NSInteger' tidak boleh digunakan sebagai format argumen; tambahkan cast eksplisit ke 'long' sebagai gantinya
NSLog
Pesan yang dikoreksi sebenarnya NSLog(@"%lg", (long) myInt);
. Mengapa saya harus mengonversi nilai integer myInt
menjadi long
jika saya ingin nilai ditampilkan?
NSInteger
yang tidak lama), tapi kedengarannya seperti Anda kompilasi target OS X (di mana NSInteger
adalah long
).
NSLog(@"%ld", (long) myInt);
, paralong
pemain harus membuatnya sesuai denganl
kualifikasi%ld
, tetapi semua itu tidak perlu karenaNSLog(@"%d", myInt);
cukup (mengingat bahwa kita dapat melihat bahwamyInt
tidaklong
. Intinya, AndamyInt
menggunakan jika menggunakan kualifikasi panjang dalam format string, tetapi tidak perlu menggunakan kualifikasi format string panjang ataulong
dilemparkan ke sini