iOS 개발시 많이 사용하는 문자열 포맷 메소드나 함수에서 지원하는 포맷 지정자입니다.
"%@"나 "%d"와 같이 정말 자주 사용하는 지정자와 달리 가끔씩 사용하게 되는 지정자들이 있습니다. 애플의 가이드를 보면 자세히 나와 있지만 개인적으로 쉽게 검색을 하기 위해서 포스팅합니다.
지정자 | 의미 |
%@ | description이나 descriptionWithLocale: 함수를 사용해서 오브젝트 C 객체의 내용을 출력합니다. |
%% | '%' 문자를 출력합니다. |
%d, %D, %i | 부호가 있는 32비트 정수 (int) Signed 32-bit integer |
%u, %U | 부호가 없는 32비트 정수 (unsigned int) Unsigned 32-bit integer |
%hi | 부호가 있는 16비트 정수 (short) Signed 16-bit integer |
%hu | 부호가 없는 16비트 정수 (unsigned short) Unsigned 16-bit integer |
%qi | 부호가 있는 64비트 정수 (long long) Signed 64-bit integer |
%qu | 부호가 없는 64비트 정수 (unsigned long long) Unsigned 64-bit integer |
%x | 소문자를 사용해 16진수로 표시한 부호가 없는 32비트 정수 (unsigned int) Unsigned 32-bit integer, printed in hexadecimal using the digits 0-9 and lowercase a-f |
%X | 대문자를 사용해 16진수로 표시한 부호가 없는 32비트 정수 (unsigned int) Unsigned 32-bit integer, printed in hexadecimal using the digits 0-9 and uppercase A-F |
%qx | 소문자를 사용해 16진수로 표시한 부호가 없는 64비트 정수 (unsigned long long) Unsigned 64-bit integer, printed in hexadecimal using the digits 0-9 and lowercase a-f |
%qX | 대문자를 사용해 16진수로 표시한 부호가 없는 64비트 정수 (unsigned long long) Unsigned 64-bit integer, printed in hexadecimal using the digits 0-9 and uppercase A-F |
%o, %O | 8진수로 표시한 부호가 없는 32비트 정수 (unsigned int) Unsigned 32-bit integer, printed in octal |
%f | 64비트 부동소수점 숫자 (double) 64-bit floating-point number |
%F | 10진수 표기된 64비트 부동소수점 숫자 (double) 64-bit floating-point number, printed in decimal notation |
%e | 소문자 e를 사용해 지수 표기법으로 표시한 64비트 부동소수점 숫자 (double) 64-bit floating-point number, printed in scientific notation using a lowercase e to introduce the exponent |
%E | 대문자 E를 사용해 지수 표기법으로 표시한 64비트 부동소수점 숫자 (double) 64-bit floating-point number, printed in scientific notation using an uppercase e to introduce the exponent |
%g | 지수가 -4보다 작거나 또는 크거나 또는 정확히 같다면 %e 스타일로 표시하고 그렇지 않다면 %f 스타일로 표시하는 64비트 부동소수점 숫자 (double) 64-bit floating-point number, printed in the style of %e if the exponent is less than -4 or greater than or equal to the precision, in the style of %f otherwise |
%G | 지수가 -4보다 작거나 또는 크거나 또는 정확히 같다면 %E 스타일로 표시하고 그렇지 않다면 %f 스타일로 표시하는 64비트 부동소수점 숫자 (double) 64-bit floating-point number, printed in the style of %e if the exponent is less than -4 or greater than or equal to the precision, in the style of %f otherwise |
%c | 부호가 없는 8비트 문자 (unsigned char) 8-bit unsigned character |
%C | 16비트 유니코드 문자 (unichar) 16-bit Unicode character |
%s | Null로 끝나는 부호가 없는 8비트 문자열(C 문자열) Null-terminated array of 8-bit unsigned characters |
%S | Null로 끝나는 16비트 유니코드 문자열 Null-terminated array of 16-bit Unicode characters |
%p | 0x로 시작하고 소문자를 사용해 16진수로 표시한 포인터 주소 Void pointer (void *), printed in hexadecimal with the digits 0-9 and lowercase a-f, with a leading 0x |
<플랫폼에 종속적인 포맷 지정자>
타입 | 포맷 지정자 | 고려사항 |
NSInteger | %ld or %lx | 값을 long 타입으로 변환하라. |
NSUInteger | %lu or %lx | 값을 부호없는 long 타입으로 변환하라. |
CGFloat | %f or %g | %f works for floats and doubles when formatting |
CFIndex | %ld or %lx | NSInteger와 같다. |
pointer | %p | %p는 출력시 0x를 붙인다. 이를 원하지 않는다면 %lu를 사용하라. |
long long | %lld or %llx | long long은 32비트와 64비트 플랫폼 양쪽에서 64비트이다. |
unsigned long long | %llu or %llx | unsigned long long은 32비트와 64비트 플랫폼 양쪽에서 64비트이다. |