iOS开发PCH文件、NSLog真机不打印
来源:互联网 发布:java使用ftp上传文件 编辑:程序博客网 时间:2024/05/17 01:07
添加PCH文件
现在Xcode6、7创建一个新的工程时将默认不会再带有PCH文件,需要手动添加PCH文件。
- 在Supporting Files目录下,选择 File > New > File > iOS > Other > PCH File 然后点击下一步进行命名,建议命名格式为项目名称-Prefix,如图Demo
- 创建的PCH文件与编译器Xcode进行连接:找到 Project > Build Settings > 搜索 “Prefix Header“;
- 在Apple LLVM X.0 -Language栏目中能够找到Prefix Header,双击之后添加该PCH文件地址,如图所示:
这样Xcode6、7的PCH文件就能够顺利加到工程中去了。
NSLog函数真机不打印
在实际项目中NSLog函数打印信息是必不可少的事情,可以友好的帮助我们调试程序,然而在模拟器上占用的是电脑的内存,但在真机上线时如果不把NSLog函数屏蔽掉,势必会造成内存的占用,性能的减弱,这对做一款优秀的App的出发点是十分违背的,所以在真机中借助PCH设置全局变量不打印NSLog函数是实战项目中必不可少的要求。
先学习个预备C语言知识:
C语言里面包含了两个执行条件编译
1.#ifdef 宏名称//任意语句#endif
个人感觉就相当于if….else的功能
2. #if 表达式 #elif 表达式 //任意语句 //可以有零个或多个#elif语句 //最后的#else语句也可以省略 #else //任意语句 #endif
个人感觉相当于if…else if…. else功能
好啦我们有了上面C语言的基础在刚才建立的PCH中对NSLog进行改造:
#ifdef DEBUG #define DLog(fmt, ...) NSLog((@"[文件名:%s]\n" "[函数名:%s]\n" "[行号:%d] \n" fmt), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__); #define DeBugLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #define NSLog(...) NSLog(__VA_ARGS__);%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]); #else #define DLog(...) #define DeBugLog(...) #define NSLog(...) #define MyNSLog(FORMAT, ...) nil #endif
* 1) VA_ARGS 是一个可变参数的宏,很少人知道这个宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的”,”去掉的作用,否则会编译出错, 你可以试试。
2) FILE 宏在预编译时会替换成当前的源文件名
3) LINE宏在预编译时会替换成当前的行号
4) FUNCTION宏在预编译时会替换成当前的函数名称
OK了,测试一下吧!真机与模拟的互相切换
1 0
- iOS开发PCH文件、NSLog真机不打印
- iOS通过宏定义设置NSLog打印出类名、方法名和NSLog所在行数以及PCH文件的使用
- iOS开发-NSLog不打印设置
- iOS开发-NSLog不打印设置
- iOS开发-NSLog不打印设置
- iOS开发-NSLog不打印设置
- iOS开发-NSLog不打印设置
- iOS开发 替换NSLog打印设置
- iOS开发-NSLog不打印设置 Prefix
- 002、iOS开发-NSLog不打印设置
- iOS开发-NSLog不打印设置
- iOS开发常见文件--pch
- ios开发 预处理.pch文件
- iOS开发:创建pch文件
- 【iOS开发】添加 .pch 文件
- iOS开发配置pch文件
- iOS开发添加pch文件
- iOS通过宏定义设置NSLog打印出类名、方法名和NSLog所在行数以及PCH的作用
- 前端开发遇到的一些小问题
- yraniBddA.67
- 闭包的循环引用
- BitmapFactory.Options详解
- windows平台上编译生成libzmq
- iOS开发PCH文件、NSLog真机不打印
- log4j【4】(log4j的性能问题)
- 文章标题
- 点对点隧道协议(PPTP)-rfc2637(未完待更新)
- C字符串函数和命令行参数的学习心得
- log4j【5】( log4j日志异步化大幅提升系统性能 )
- react(2)--Thinking in React
- hdu 4489 The King’s Ups and Downs (组合数学 + dp )
- HDU.1003【max-sum】---16.2.3