iOS开发中使用宏定义提高开发效率
来源:互联网 发布:mac安全控件下载官网 编辑:程序博客网 时间:2024/05/17 01:04
iOS开发中,巧妙的使用宏定义,可以提高开发效率,本篇简单介绍一下宏的定义,设置,应用,并在未来实践中不断追加一些常用的宏定义。
调试Log
iPhone应用程序开发调试的时候,在代码中加入NSLog的暴力调试方法是很频繁的,但是在release的时候要删除这些调试代码,那工作量是烦躁,这样的情况下,试用宏就会显得非常的方便。 看下面的例子:
像上面例子这些宏,ProjectName_Prefix.pch中追加之后,不用import就能直接在工程的文件中直接试用了。默认情况下,在工程设置的Macros里已经有DEBUG的设置参数的,如果需要添加其他参数的话,就在Xcode的工程设定里设置相对应的参数:
- 1.打开工程设置
- 2.「TARGETS」下选择设置对应工程「Build Setting」
- 3.「XXX – Preprocessing」选项下的「Preprocessor Macros」项目的「DEBUG」中追加对应的参数
这样设置以后,调试log的代码段只会在debug的时候才有效。 另外使用方法的话,就是用定义的LOG方法去替代NSLog方法,想打出函数名的log就使用LOG_METHOD。 例:
大家可以根据项目的需要添加各种log处理的形式,这样就方便许多了。
其他应用
除了DEBUG,有时候有很多的配置用宏的话,写代码也没有那么烦躁,比如说Google Analytics的设定
多行表示的写法
#define ReloadBarButton [[[UIBarButtonItem alloc]initWithImage:ReloadBarButtonIcon
style:UIBarButtonItemStylePlain
target:self
action:@selector(ContentsReload:)]autorelease]
参照C语言的预处理命令简介 :
#define 定义一个预处理宏
#undef 取消宏的定义
#include 包含文件命令
#include_next 与#include相似, 但它有着特殊的用途
#if 编译预处理中的条件命令, 相当于C语法中的if语句
#ifdef 判断某个宏是否被定义, 若已定义, 执行随后的语句
#ifndef 与#ifdef相反, 判断某个宏是否未被定义
#elif 若#if, #ifdef, #ifndef或前面的#elif条件不满足, 则执行#elif之后的语句, 相当于C语法中的else-if
#else 与#if, #ifdef, #ifndef对应, 若这些条件不满足, 则执行#else之后的语句, 相当于C语法中的else
#endif #if, #ifdef, #ifndef这些条件命令的结束标志.
defined 与#if, #elif配合使用, 判断某个宏是否被定义
#line 标志该语句所在的行号
# 将宏参数替代为以参数值为内容的字符窜常量
## 将两个相邻的标记(token)连接为一个单独的标记
#pragma 说明编译器信息#warning 显示编译警告信息
#error 显示编译错误信息
#undef
#include
#include_next
#if
#ifdef
#ifndef
#elif
#else
#endif
defined
#line
#
##
#pragma
#error
#define SAFE_RELEASE(obj) if(obj){[obj release];obj=nil;} 释放
参考文档:
http://blog.csdn.net/wangqiuyun/article/details/8104698
http://blog.csdn.net/a351945755/article/details/8433909
0 0
- iOS开发中使用宏定义提高开发效率
- iOS开发中使用宏定义提高开发效率
- iOS开发中使用宏定义提高开发效率
- iOS开发中使用宏定义提高开发效率
- ios之开发中使用频率很高的宏定义-提高设备屏幕适配以及开发效率
- iOS开发中使用宏定义提高开发效率 以及配合Compiler Flags写出高质量的代码
- 提高ios开发效率
- 提高iOS开发效率
- iOS开发 -- 使用facebook的chisel来提高调试效率
- cocos2d-x中使用DebugDraw提高box2d开发效率
- iOS一些提高开发效率的宏(收集)
- 提高iOS开发效率 - 巧用注释
- 提高IOS开发效率的工具
- 提高IOS开发效率的工具
- 提高iOS开发效率的第三方框
- 提高iOS开发效率的第三方框
- IOS开发使用宏定义
- iOS开发-学会使用代码块,提高你的开发效率
- Android源码之ListView的适配器模式
- android4.4如何开机横屏
- rpm打包原理学习
- NSDictionary的遍历
- 单链表就地逆置(Java版),单链java版
- iOS开发中使用宏定义提高开发效率
- saving data - Saving Key-Value Sets
- 缓存学习点滴
- java 压缩解压文件 无乱码
- 在WebView中如何让JS与Java安全地互相调用
- ServiceStack.Redis 之 IRedisTypedClient<第四篇>
- linux多线程
- Universal Windows App Development with Cortana and the Speech SDK 5
- ServiceStack.Redis常用操作 - 事务、并发锁