NSInteger myInt = 1804809223;
NSLog(@"%i", myInt); <====
รหัสด้านบนสร้างข้อผิดพลาด:
ไม่ควรใช้ค่าประเภท 'NSInteger' เป็นอาร์กิวเมนต์รูปแบบ เพิ่มเพี้ยนชัดใสเป็น 'ยาว' แทน
แก้ไขข้อความที่เป็นจริงNSLog NSLog(@"%lg", (long) myInt);ทำไมฉันต้องแปลงค่าจำนวนเต็มmyIntเป็นlongถ้าฉันต้องการให้ค่าแสดง?
NSIntegerเป็นไม่นาน) แต่ดูเหมือนคุณกำลังรวบรวมพร้อม OS X เป้าหมาย (ที่NSInteger เป็น long )
NSLog(@"%ld", (long) myInt);การlongหล่อคือการทำให้มันตรงกับlรอบคัดเลือกของ%ldแต่ทั้งหมดที่ไม่จำเป็นเป็นNSLog(@"%d", myInt);ก็เพียงพอ (ที่กำหนดว่าเราจะเห็นว่าmyIntไม่long. บรรทัดล่างคุณโยนmyIntถ้าใช้ยาวรอบคัดเลือกในรูปแบบ สตริง แต่ไม่จำเป็นต้องใช้ตัวระบุรูปแบบสตริงแบบยาวหรือlongส่งที่นี่