Format Specifiers
The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you can also use the “n$” positional specifiers such as %1$@ %2$s. For more details, see the IEEE printf specification. You can also use these format specifiers with the NSLogfunction.
Specifier | Description |
|---|---|
| Objective-C object, printed as the string returned by |
|
|
| Signed 32-bit integer ( |
| Unsigned 32-bit integer ( |
| Unsigned 32-bit integer ( |
| Unsigned 32-bit integer ( |
| Unsigned 32-bit integer ( |
| 64-bit floating-point number ( |
| 64-bit floating-point number ( |
| 64-bit floating-point number ( |
| 64-bit floating-point number ( |
| 64-bit floating-point number ( |
| 8-bit unsigned character ( |
| 16-bit Unicode character ( |
| Null-terminated array of 8-bit unsigned characters. Because the |
| Null-terminated array of 16-bit Unicode characters. |
| Void pointer ( |
| 64-bit floating-point number ( |
| 64-bit floating-point number ( |
| 64-bit floating-point number ( |
Length modifier | Description |
|---|---|
| Length modifier specifying that a following |
| Length modifier specifying that a following |
| Length modifier specifying that a following |
| Length modifiers specifying that a following |
| Length modifier specifying that a following |
| Length modifier specifying that a following |
| Length modifier specifying that a following |
| Length modifier specifying that a following |
Platform Dependencies
OS X uses several data types—NSInteger, NSUInteger,CGFloat, and CFIndex—to provide a consistent means of representing values in 32- and 64-bit environments. In a 32-bit environment, NSInteger and NSUInteger are defined as int and unsigned int, respectively. In 64-bit environments, NSInteger and NSUInteger are defined as long andunsigned long, respectively. To avoid the need to use different printf-style type specifiers depending on the platform, you can use the specifiers shown in Table 3. Note that in some cases you may have to cast the value.
Type | Format specifier | Considerations |
|---|---|---|
|
| Cast the value to |
|
| Cast the value to |
|
|
|
|
| The same as |
pointer |
|
|
The following example illustrates the use of %ld to format an NSInteger and the use of a cast.
NSInteger i = 42; |
printf("%ld\n", (long)i); |
In addition to the considerations mentioned in Table 3, there is one extra case with scanning: you must distinguish the types for float and double. You should use %f for float, %lffor double. If you need to use scanf (or a variant thereof) with CGFloat, switch to double instead, and copy the double to CGFloat.
CGFloat imageWidth; |
double tmp; |
sscanf (str, "%lf", &tmp); |
imageWidth = tmp; |
It is important to remember that %lf does not represent CGFloat correctly on either 32- or 64-bit platforms. This is unlike %ld, which works for long in all cases.
'IPHONE' 카테고리의 다른 글
| 특정 위치에 있을때 모니터링 하기. (0) | 2013.12.18 |
|---|---|
| CLLocationManager 상태 체크 예제 코드 (0) | 2013.12.18 |
| core data 고유키 값 생성. (0) | 2013.12.11 |
| 디폴트 edit 버튼. (0) | 2013.12.11 |
| Segue 사용하기. (0) | 2013.12.11 |



