[objective-C基础]NSLog()使用详解
时间:2014-07-24 21:15 来源: 我爱IT技术网 作者:山风
NSLog() 为 Objective-C 在命令打印出信息的函数 (function) ,需要最少一个 NSString 格式化字符串 (formatting string) 对象 (object) 当参数 (argument)

所谓格式化字符串系指 formatStromg 具有转换格式字符,转换格式字符如下表
| 转换格式字符 | 说明 |
|---|---|
| %@ | 对象 |
| %% | % 字符 |
| %d, %D | 有正负号 32 位元整数 |
| %u, %U | 无正负号 32 位元整数 |
| %x | 无正负号 32 位元整数,用小写英文字母的十六进位印出 |
| %X | 无正负号 32 位元整数,用大写英文字母的十六进位印出 |
| %o, %O | 无正负号 32 位元整数,用八六进位印出 |
| %f | 64 位元浮点数 |
| %e | 64 位元浮点数,用小写英文字母的科学记号印出 |
| %E | 64 位元浮点数,用大写英文字母的科学记号印出 |
| %g | 64 位元浮点数,同 %e 印出样式,指数的绝对值小于或等于 4 便直接印出数字 |
| %G | 64 位元浮点数,同 %E 印出样式,指数的绝对值小于或等于 4 便直接印出数字 |
| %c | 8 位元无正负号 ASCII 字符 |
| %C | 16 位元无正负号 ASCII 字符 |
| %s | 8 位元无正负号字符 |
| %S | 16 位元 Unicode 字符 |
| %p | 指针 |
| %a | 64 位元浮点数,用 16 进位 (0x) 的科学记号印出 |
| %A | 64 位元浮点数,用 16 进位 (0x) 的科学记号印出 |
| %F | 64 位元浮点数 |
单一格式化字符串可以有多个转换格式字符,格式化字符串后所接参数的型态与个数也需要与转换格式字符相同。举例如下
- #import <Foundation/Foundation.h>
- int main(int argc, char *argv[]) {
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- int a = 4;
- int b = 1;
- NSLog(@"狗狗有 %d 只脚, %d 条尾巴!", a, b);
- [pool drain];
- return 0;
- }
此例 NSLog() 中的格式化字符串有两个转换格式字符 %d ,因此另外加入两个 int 型态 (type) 的变量 (variable) a 与 b
- NSLog(@"狗狗有 %d 只脚, %d 条尾巴!", a, b);
我们在 demo.m 中是直接以一个 NSString 字符串对象当 NSLog() 的参数
- // 调用 NSLog() 函数,印出 s1 的内容
- NSLog(s1);
在新版的 Xcode 中,直接以单一个 NSString 字符串对象当 NSLog() 的参数,编译时可能会出现警告信息,建议改写成格式化字符串的方式,如下
- NSLog(@"%@", s1);
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
