NSLog 使用

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

原文地址:http://blog.sina.com.cn/s/blog_541a135601014fb1.html

NSLog 使用

时间: 2024-08-29 07:32:08

NSLog 使用的相关文章

NSLog 去除上线版本

创建pch 文件 STEP1: #ifdef DEBUG #   define NSLog(...) NSLog(__VA_ARGS__) #else #   define NSLog(...) #endif #define ALog(...)  NSLog(__VA_ARGS__) STEP2: a. TARGETS 中 Build Settings 设置 Apple LLVM7.1 - Preprocessing 里面 Preprocessor Macros : 如果在测试版本打印日志,De

description方法 oc 就是NSLog使用

使用场景: 父类的-description默认是调用返回的是“类名+内存地址:” 我们需要重写这个方法: NSLog输出C语言字符串的时候,不能有中文: 打印当前的行号:NSLog(@“%d”,_LINE_); 打印当前文件所处的文件路径:printf(@“%s\n”,_FILE_); 打印指针变量地址:NSLog(@“%p”,&p); 打印对象地址:NSLog(@“%p”,p); 输出当前函数名:NSLog(@“%s\n”,_func_);

【iOS】NSLog 打印 BOOL 类型值

这个问题以前没在意,刚偶然打印,发现有些问题,上网查了下,发现是这么搞的: NSLog(@"%@", isEqual?@"YES":@"NO");

Object-C自定义对象NSLog输入信息

http://blog.cnrainbird.com/index.php/2012/07/19/object-c_zi_ding_yi_dui_xiang_nslog_shu_ru_you_yong_xin_xi/ 继续昨天的故事关于Object-C面向对象开发自定义完对象以后,想查看对象的信息,于是我们直接NSLog: NSLog(@"%@",_LocalVideo); 结果输出的是一个内存地址,这肯定不是我们想要的. 2012-07-19 09:37:46.933 umiwiFor

0-C相关01:NSlog函数介绍。

  NSlog()函数介绍: 首先:NSlog()函数是cocoa的框架中提供的一个方法: 下图中最上方是它在Xcode中的路径: : 同样都是输出函数.下边我们来看一下,在O-C中NSlog()和在 c 语言中的printf的一些不同: 1.nslog 和printf都可以输出字符串到控制台.@"1213244" @开头表示oc的字符串. 2.NSlog()在打印时能自带一次自动换行,后者没有,想换行需要\手动添加"\n".当然在NSlog()中也可以手动添加&q

iOS开发中关于nslog的几种流行做法小结

不管哪种方法,都必须在PCH文件中做下宏定义 DEBUG和RELEASE要分开,RELEASE时log打印要取消 方法一:简单直接,用几行代码搞定,简洁但功能少 #ifdef DEBUG #define NSLog(...) NSLog(__VA_ARGS__) #define debugMethod() NSLog(@"%s", __func__) #else #define NSLog(...) #define debugMethod() #endif 这个DEBUG在哪设置呢,

NSLog的使用方法

///////////////////////////////// //////////////////////////////// 2.NSLog的使用方法 NSLog是cocoa框架中提供的一个方法 NSLog的定义 NSLog定义在NSObjCRuntime.h中 基本上,NSLog很像printf,同样会在console中输出显示结果.不同的是,传递进去的格式化字符是 NSString的对象,而不是chat *这种字符串指针 // //  main.m //  hello world /

NSLog

#define NSLog(format, ...)   fprintf(stderr, "<%s : %d> %s\n",                                           \ [[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String],  \ __LINE__, __func__);                                 

iOS中NSLog调试的使用技巧

在PCH文件中添加如下代码: #ifdef __OBJC__ //保证代码只会在OC中引用 #ifdef DEBUG #define NSLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) #else #define NSLog(...) #endif #endif NSLog只在debug模式下打印信息,在release模式下则不会.

NSLog设置不打印

在调试应用程序的时候经常需要进行打印需要的信息,但是当打印的地方多了之后在真机上跑应用程序就会相应的慢很多,输出语句多了之后会在很大程序上影响应用程序的性能.这里我们可以定义一个宏来控制是否输出调试信息. 在Release模式下禁止输出调试信息 因为NSLog的输出还是比较消耗系统资源的,而且输出的数据也可能会暴露出App里的保密数据,所以发布正式版时需要把这些输出全部屏蔽掉. 我们可以在发布版本前先把所有NSLog语句注释掉,等以后要调试时,再取消这些注释,这实在是一件无趣而耗时的事!还好,还