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여기에서 캐스트 할 필요가 없습니다