您的位置:首页 > 移动开发 > IOS开发

iOS 开发中常用的宏

2015-12-01 16:00 381 查看
#ifdef DEBUG

#define MTLog(...) NSLog(__VA_ARGS__)

#define MTMethod MTLog(@"%s",__func__)

#ifdef DEBUG
# define DLog(format, ...) NSLog((@"[文件名:%s]" "[函数名:%s]" "[行号:%d]" format), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...);
#endif




#else

#define MTLog(...)

#define MTMethod 

#endif
#define App_Frame_Height        [[UIScreen mainScreen] applicationFrame].size.height/获取屏幕高度 (不计算状态栏,就是app的范围)

#define App_Frame_Width         [[UIScreen mainScreen] applicationFrame].size.width /获取屏幕宽度 (不计算状态栏,就是app的范围)

#ifdef DEBUG
#define DNSLogPoint(p) NSLog(@"%f,%f", p.x, p.y)
#define DNSLogSize(p) NSLog(@"%f,%f", p.width, p.height)
#define DNSLogRect(p) NSLog(@"%f,%f,%f,%f", p.origin.x, p.origin.y, p.size.width, p.size.height)
#els
#define DNSLogPoint(p)
#define DNSLogSize(p)
#define DNSLogRect(p)

#endif


#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            显示编译错误信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: