Objective-C语言--常用宏定义

宏定义可以很大程度的提高编程的效率,这里收集整理在Objective-C中常用的宏定义,会不断补充。

1、Log(在Debug模式下输出Log,在Release模式下不输出)

#ifdef DEBUG
#   define Log(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
#   define Log(...)
#endif

注:fmt代表参数;表示可变长度参数;(@"%s [Line %d] " fmt)采用括号为了确保NSLog中的第一个参数;@"%s [Line %d] "用字符串表示是为了双引号的匹配。

例如:Log(@"%d,%@",7,@"S.Li");实际等价于NSLog((@"%s[Line %d]" @"%d,%@"), __PRETTY_FUNCTION__, __LINE__, 7,@"S.Li");


2、Color(两种有关于颜色的宏定义,个人觉得第二种精巧)

#define RGBColor(r,g,b)     [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1]
#define RGBColor(r,g,b,a)     [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:a]
#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]

注:第二种的使用方式UIColorFromRGB(0xababab);


3、获取系统版本信息

#define SYSTEM_VERSION [[[UIDevice currentDevice] systemVersion] floatValue]

#define SYSTEM_VERSION_OLDER_THAN_6 ([[[ UIDevice currentDevice ] systemVersion] floatValue] <6.0)

#define SYSTEM_VERSION_NEWER_OR_EQUAL_TO_7 ([[[UIDevice currentDevice] systemVersion] floatValue] >=7.0)

#define SYSTEM_VERSION_NEWER_OR_EQUAL_TO_8 ([[[UIDevice currentDevice] systemVersion] floatValue] >=8.0)


#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)





你可能感兴趣的:(ios,Objective-C)