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
NSLogPesan yang dikoreksi sebenarnya NSLog(@"%lg", (long) myInt);. Mengapa saya harus mengonversi nilai integer myIntmenjadi longjika saya ingin nilai ditampilkan?
NSIntegeryang tidak lama), tapi kedengarannya seperti Anda kompilasi target OS X (di mana NSInteger adalah long ).
NSLog(@"%ld", (long) myInt);, paralongpemain harus membuatnya sesuai denganlkualifikasi%ld, tetapi semua itu tidak perlu karenaNSLog(@"%d", myInt);cukup (mengingat bahwa kita dapat melihat bahwamyInttidaklong. Intinya, AndamyIntmenggunakan jika menggunakan kualifikasi panjang dalam format string, tetapi tidak perlu menggunakan kualifikasi format string panjang ataulongdilemparkan ke sini