iOS_开发中常用宏定义

来源:互联网 发布:仓库管理系统源码下载 编辑:程序博客网 时间:2024/06/05 14:16
//字符串是否为空#define kStringIsEmpty(str) ([str isKindOfClass:[NSNull class]] || str == nil || [str length] < 1 ? YES : NO )//数组是否为空#define kArrayIsEmpty(array) (array == nil || [array isKindOfClass:[NSNull class]] || array.count == 0?YES : NO)//字典是否为空#define kDictIsEmpty(dic) (dic == nil || [dic isKindOfClass:[NSNull class]] || dic.allKeys == 0 ? YES : NO)//是否是空对象#define kObjectIsEmpty(_object) (_object == nil || [_object isKindOfClass:[NSNull class]] || ([_object respondsToSelector:@selector(length)] && [(NSData *)_object length] == 0) || ([_object respondsToSelector:@selector(count)] && [(NSArray *)_object count] == 0) ? YES : NO)//获取屏幕宽度与高度#define kScreenWidth  ([[UIScreen mainScreen] respondsToSelector:@selector(nativeBounds)] ? [UIScreen mainScreen].nativeBounds.size.width/[UIScreen mainScreen].nativeScale : [UIScreen mainScreen].bounds.size.width)#define kScreenHeight ([[UIScreen mainScreen] respondsToSelector:@selector(nativeBounds)] ? [UIScreen mainScreen].nativeBounds.size.height/[UIScreen mainScreen].nativeScale : [UIScreen mainScreen].bounds.size.height)#define kScreenSize ([[UIScreen mainScreen] respondsToSelector:@selector(nativeBounds)] ? CGSizeMake([UIScreen mainScreen].nativeBounds.size.width/[UIScreen mainScreen].nativeScale,[UIScreen mainScreen].nativeBounds.size.height/[UIScreen mainScreen].nativeScale) : [UIScreen mainScreen].bounds.size)//判断屏幕大小#define kScreenSizeIs_3_5                              (SCREEN_HEIGHT == 480 ? YES : NO)#define kScreenSizeIs_4_0                              (SCREEN_HEIGHT == 568 ? YES : NO)#define kScreenSizeIs_4_7                              (SCREEN_HEIGHT == 667 ? YES : NO)#define kScreenSizeIs_5_5                              (SCREEN_HEIGHT == 736 ? YES : NO)#define kScreenWidthIs_320                             (SCREEN_WIDTH == 320 ? YES : NO)//一些缩写#define kApplication        [UIApplication sharedApplication]#define kKeyWindow          [UIApplication sharedApplication].keyWindow#define kAppDelegate        [UIApplication sharedApplication].delegate#define kUserDefaults       [NSUserDefaults standardUserDefaults]#define kNotificationCenter [NSNotificationCenter defaultCenter]//APP版本号#define kAppVersion [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]//系统版本号#define kSystemVersion [[UIDevice currentDevice] systemVersion]//判断系统版本#define kIsiOS7_Later ([UIDevice currentDevice].systemVersion.floatValue >= 7.0f)#define kIsiOS8_Later ([UIDevice currentDevice].systemVersion.floatValue >= 8.0f)#define kIsiOS9_Later ([UIDevice currentDevice].systemVersion.floatValue >= 9.0f)#define kIsiOS9_1Later ([UIDevice currentDevice].systemVersion.floatValue >= 9.1f)//获取当前语言#define kCurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0])//判断是否为iPhone#define kIsiPhone (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)//判断是否为iPad#define kIsiPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)//获取沙盒Document路径#define kDocumentPath [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]//获取沙盒temp路径#define kTempPath NSTemporaryDirectory()//获取沙盒Cache路径#define kCachePath [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]//判断是真机还是模拟器#if TARGET_OS_IPHONE//真机#endif#if TARGET_IPHONE_SIMULATOR//模拟器#endif//开发的时候打印,但是发布的时候不打印的NSLog#ifdef DEBUG#define NSLog(...) NSLog(@"%s 第%d行 \n %@\n\n",__func__,__LINE__,[NSString stringWithFormat:__VA_ARGS__])#else#define NSLog(...)#endif//颜色#define kRGBColor(r, g, b)     [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]#define kRGBAColor(r, g, b, a) [UIColor colorWithRed:(r)/255.0 green:(r)/255.0 blue:(r)/255.0 alpha:a]#define kRandomColor  KRGBColor(arc4random_uniform(256)/255.0,arc4random_uniform(256)/255.0,arc4random_uniform(256)/255.0)#define kColorWithHex(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]//弱引用/强引用#define kWeakSelf(type)   __weak typeof(type) weak##type = type;#define kStrongSelf(type) __strong typeof(type) type = weak##type;//由角度转换弧度#define kDegreesToRadian(x)      (M_PI * (x) / 180.0)//由弧度转换角度#define kRadianToDegrees(radian) (radian * 180.0) / (M_PI)//获取一段时间间隔#define kStartTime CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();#define kEndTime   NSLog(@"Time: %f", CFAbsoluteTimeGetCurrent() - start)//重置frame #define RESET_FRAME_ORIGIN_X(view, x)                    view.frame = (CGRect){x, ORIGIN_Y(view), SIZE_W(view), SIZE_H(view)}#define RESET_FRAME_ORIGIN_Y(view, y)                    view.frame = (CGRect){ORIGIN_X(view), y, SIZE_W(view), SIZE_H(view)}#define RESET_FRAME_SIZE_WIDTH(view, width)              view.frame = (CGRect){ORIGIN_X(view), ORIGIN_Y(view), width, SIZE_H(view)}#define RESET_FRAME__SIZE_HEIGHT(view, height)           view.frame = (CGRect){ORIGIN_X(view), ORIGIN_Y(view), SIZE_W(view), height}#define ORIGIN(view)                                     (view.frame.origin)#define SIZE(view)                                       (view.frame.size)#define FRAME(view)                                      (view.frame)#define ORIGIN_X(view)                                   (view.frame.origin.x)#define ORIGIN_Y(view)                                   (view.frame.origin.y)#define SIZE_W(view)                                     (view.frame.size.width)#define SIZE_H(view)                                     (view.frame.size.height)#define ORIGIN_Y_ADD_SIZE_H(view)                        (ORIGIN_Y(view) + SIZE_H(view))#define ORIGIN_X_ADD_SIZE_W(view)                        (ORIGIN_X(view) + SIZE_W(view))
0 0
原创粉丝点击