NSInteger myInt = 1804809223;
NSLog(@"%i", myInt); <====
위의 코드는 오류를 생성합니다 :
'NSInteger'유형의 값을 형식 인수로 사용해서는 안됩니다. 대신 'long'에 명시 적 캐스트를 추가하십시오.
수정 된 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
여기에서 캐스트 할 필요가 없습니다