我们通常使用宏需要注意一些什么问题呢?
#ifndef PrefixHeader_h
#define PrefixHeader_h
/*** 如果希望某些内容能拷贝到任何源代码文件(OC\C\C++等), 那么就不要写在#ifdef __OBJC__和#endif之间 ***/
/***** 在#ifdef __OBJC__和#endif之间的内容, 只会拷贝到OC源代码文件中, 不会拷贝到其他语言的源代码文件中 *****/
#ifdef __OBJC__ // 只拷贝到OC文件
/**** 日志 ****/
#ifdef DEBUG // 调试阶段
#define ZGKLog(...) NSLog(__VA_ARGS__)
#else // 发布阶段
#define ZGKLog(...)
#endif /* DEBUG */
/**** 颜色(参数统一加括号) ****/
#define ZGKColorA(r, g, b, a) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:(a)/255.0]
#define ZGKColor(r, g, b) ZGKColorA((r), (g),(b), 255)
#define ZGKRandomColor ZGKColor(arc4random_uniform(255), arc4random_uniform(255),arc4random_uniform(255))
#endif /* __OBJC__ */
/***** 在#ifdef __OBJC__和#endif之间的内容, 只会拷贝到OC源代码文件中, 不会拷贝到其他语言的源代码文件中 *****/
#endif /* PrefixHeader_h */
注意点:
/***** 在#ifdef __OBJC__和#endif之间的内容, 只会拷贝到OC源代码文件中, 不会拷贝到其他语言的源代码文件中 *****/
#ifdef __OBJC__ // 只拷贝到OC文件
/**** 日志 ****/
#ifdef DEBUG // 调试阶段
#define ZGKLog(...) NSLog(__VA_ARGS__)
#else // 发布阶段
#define ZGKLog(...)
#endif /* DEBUG */
#endif /* __OBJC__ */
/**** 日志 ****/
#ifdef DEBUG // 调试阶段
#define ZGKLog(...) NSLog(__VA_ARGS__)
#else // 发布阶段
#define ZGKLog(...)
#endif /* DEBUG */
/**** 颜色(参数统一加括号) ****/
#define ZGKColorA(r, g, b, a) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:(a)/255.0]
#define ZGKColor(r, g, b) ZGKColorA((r), (g),(b), 255)
#define ZGKRandomColor ZGKColor(arc4random_uniform(255), arc4random_uniform(255),arc4random_uniform(255))
网友评论