读书人

NSLog 运用

发布时间: 2012-09-10 22:20:12 作者: rapoo

NSLog 使用

可能你曾经有过Windows编程的经验,通常在你调试程序的时候,如果希望看到某个中间结果,你会习惯使用MessageBox来显示中间的结果。
有了Cocoa的NSLog,你在写Cocoa程序的时候,就可以无需每次都调用NSAlert来观察中间结果了。
NSLog的定义
NSLog定义在NSObjCRuntime.h中,如下所示:
void NSLog(NSString *format, …);
基本上,NSLog很像printf,同样会在console中输出显示结果。不同的是,传递进去的格式化字符是NSString的对象,而不是chat *这种字符串指针。

?

numerator是NSInteger 类型,那么会抛EXC_BAD_ACCESS

NSLog(@"%@/%@", self.numerator, self.denominator);//这里会抛错。

这样写就对了:

NSLog(@"%ld////%ld", self.numerator, self.denominator);

?


示例
NSLog可以如下面的方法使用:
NSLog (@"this is a test");
NSLog (@"string is :%@", string);
NSLog (@"x=%d, y=%d", 10, 20);
但是下面的写法是不行的:
int i = 12345;
NSLog( @"%@", i );
原因是, %@需要显示对象,而int i明显不是一个对象,要想正确显示,要写成:
int i = 12345;
NSLog( @"%d", i );
格式
NSLog的格式如下所示:
%@???? 对象
%d, %i 整数
%u???? 无符整形
%f???? 浮点/双字
%x, %X 二进制整数
%o???? 八进制整数
%zu??? size_t
%p???? 指针
%e???? 浮点/双字 (科学计算)
%g???? 浮点/双字
%s???? C 字符串
%.*s?? Pascal字符串
%c???? 字符
%C???? unichar
%lld?? 64位长整数(long long)
%llu?? 无符64位长整数
%Lf??? 64位双字

读书人网 >编程

热点推荐