自定义NSLog】的更多相关文章

我们在调试程序的时候,往往需要输出一些日志信息,用到NSLog函数,当我们准备发布程序,需要注释掉NSLog代码,这个时候往往会定义一个宏,在调试的时候,会输出日志,在Release正式版本的时候,会关闭日志输出.代码如下: #ifdef DEBUG #define CLog(format, ...) NSLog(format, ## __VA_ARGS__) #else #define CLog(format, ...) #endif 上面这段代码,是最常见的自定义NSLog的方式,但是上面的…
根据编译条件,Debug时输出带行号的日志,Release时关闭日志 /* XCode LLVM XXX - Preprocessing中Debug会添加 DEBUG=1 标志 */ #ifdef DEBUG #define NSLog(FORMAT, ...) fprintf(stderr,"%s:%d\t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__,…
系统的NSLog 我个人觉得有bug时,没准确的说明哪一行出现的问题,所以为了方便自己开发查找问题,附上自己的NSLog 创建定义方式: 1:在创建好的pch文件里 配置: 2:在pch文件里添加上这样的代码(为方便使用,代码可以直接复制,就不用截图了): #define DebugLog(s,...) NSLog(@"%s第(%d)行:%@",__FUNCTION__,__LINE__,[NSString stringWithFormat:(s),##__VA_ARGS__]) 这里…
#ifdef DEBUG # define DLog(fmt, ...) NSLog((@"[文件名:%s]\n" "[函数名:%s]\n" "[行号:%d] \n" fmt), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__); #else # define DLog(...); #endif 参数解释: __VA_ARGS__是一个可变参数的宏,很少人知道这个宏,这个可变参数的宏是新的C99规范…
问题 开发中用了大量的 NSLog,但是发布时想取消这些 NSLog 开发中是否经常用过 NSLog(@"%s", __FUNCTION__); 解决问题 新建 ExtendNSLog 类,继承自 NSObject 在 ExtendNSLog.h 中删除默认代码 添加以下函数声明: void ExtendNSLog(const char *file, int lineNumber, const char *functionName, NSString *format, ...); 在 …
#define SXLog(FORMAT, ...) fprintf(stderr,"file --\t%s\nline --\t%d\nmethd --\t%s\noutput --\t\n\n%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__,__FUNCTION__, [[NSString stringWithFormat:FORMAT, ##__VA_…
1.如何自定义NSLog呢? 直接在工程的XXX_Prefix.pch中加入以下语句(就相当于在全局中定义了)#define NSLog NSLog(@"#%s##%d#",strrchr(__FILE__,'/'),__LINE__);NSLog例如NSLog(@" begin main function");打印出来如下 #/main.mm##30# begin main function 2.如何在发行版release中屏蔽NSLog 方法1: 直接在工程的X…
公司中不直接使用NSLog,而是利用宏定义自己的打印函数,将该打印函数写在项目的.pch文件中.调试的时候往往用到好多打印,但发布的时候确不需要.(一下是在公司中的一些处理) 自定义NSLog 一,固定写法: #define  MYLog(...)  NSLog(__VA_ARGS__) 二,注意: 1,MYLog括号中的...是固定写法,表示可以接受任意多个参数. 2,NSLog括号中的__VA_ARGS__  也是固定写法,前后用了两个下划线 三,使用方式: 项目中Supporting fi…
目录 文件包含 #include #include_next #import 宏定义 #define #undef 条件编译 #if #else #endif #if define #ifdef #ifndef #elif 错误.警告处理 #error #warning 编译器控制 #pragma 其他 #line 结语 开篇 我们人类创造东西的时候有个词叫做”仿生学“!人类创造什么东西都会模仿自己来创造,所以上帝没有长成树的样子而和人长得一样,科幻片里面外星人也像人一样有眼睛有鼻子……但是人类…
objective-c基础教程——学习小结   提纲: 简介 与C语言相比要注意的地方 objective-c高级特性 开发工具介绍(cocoa 工具包的功能,框架,源文件组织:XCode使用介绍) 简介: 1.       objective-c是C语言的一个扩展集,主要由APPLE公司维护,是MAC系统下的主要开发语言. 个人认为,对于用惯了常用的C,JAVA等语言的人来说,objective-c是一中很另类,非主流的语言. 2.    开发 Mac的 UI 程序来说,使用的是 Cocoa …