1. 替换字符
///屏幕宽度
#define kMainScreenWidth ([UIScreen mainScreen].bounds.size.width)
///屏幕高度
#define kMainScreenHeight ([UIScreen mainScreen].bounds.size.height)
2. 简单函数
//返回二倍原型图相应尺寸
#define Size(originalSize) ([UIScreen mainScreen].bounds.size.width/750*originalSize)
//返回十六进制颜色值
#define color(string) 0x##string
//比较大小
#define MIN(A,B) (A < B ? A : B)
3. 复杂函数
符号
作用
实例
...
实现可变参数
##
连接符号,实现前后连接
#define weakObj(obj) _weak typeof(obj) weak ##obj = obj
#
原样输出
#define __toString(x) #x
//系统工具方法
__VA_ARGS__ :宏定义中的...中的所有剩余参数
__COUNTER__ 无重复的计数器,从程序启动开始每次调用都会++,常用语宏中定义无重复的参数名称
__FILE__:当前文件的绝对路径,常见于log中
__LINE__:展开该宏时在文件中的行数,常见于log中
__func__:所在scope的函数名称,常见于log中
原文链接
4.常用宏
原文链接
//文件目录
#define kPathTemp NSTemporaryDirectory()
#define kPathDocument [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]
#define kPathCache [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0]
// 获取RGB颜色
#define RGBA(r,g,b,a) [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a]
#define RGB(r,g,b) RGBA(r,g,b,1.0f)
//System version utils
#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
//实例
//大于等于7.0的ios版本
#define iOS7_OR_LATER SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")
//大于等于8.0的ios版本
#define iOS8_OR_LATER SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")
最后编辑于 :2017.12.08 05:16:26
©著作权归作者所有,转载或内容合作请联系作者 【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。 平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。