美文网首页
iOS开发常用宏定义(持续更新)

iOS开发常用宏定义(持续更新)

作者: AppleTTT | 来源:发表于2017-01-12 14:52 被阅读82次

    ` //判断字符串是否为空

    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)

    //判断字典是否为空

    define kDictionaryIsEmpty(dic) (dic == nil || [dic isKindOfClass:[NSNull class]] || dic.allKeys == 0)

    //弱引用,强引用

    define kWeakSelf(type) __weak typeof(type) weak##type = type;

    define kStrongSelf(type) __strong typeof(type) type = weak##type;

    //一些常用方法的宏定义

    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 kSystemVersionGreaterThanOrEqualTo(v)(v) ([[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

    define kSystemVersionLessThanOrEqualTo(v)(v) ([[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)

    //获取当前语言

    define kCurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0])

    //是否为Iphone

    define kISiPhone (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)

    //是否为Ipad

    define kISiPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

    //是否为retina屏幕

    define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [UIScreen mainScreen] currentMode].size) : NO)

    //判断真机还是模拟器

    if TARGET_OS_IPHONE

    //真机

    endif

    if TARGET_IPHONE_SIMULATOR

    //模拟器

    endif

    //获取沙盒路径

    define kDocumentPath [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]

    //沙盒temp路径

    define kTempPath NSTemporaryDirectory()

    //沙盒cache路径

    define kCachePath [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]

    //获取时间间隔

    define kStartTime CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();

    define kEndTime NSLog(@"Time: %f", CFAbsoluteTimeGetCurrent() - start)

    ////////////////////////////////////////////////UI 相关
    //判断是否为空对象

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

    //获取屏幕的宽,高,sizi

    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 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,a) \

    [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16)) / 255.0
    green:((float)((rgbValue & 0xFF00) >> 8)) / 255.0
    blue:((float)(rgbValue & 0xFF)) / 255.0 alpha: a]

    //角度转弧度

    define kDegreesToRadian(x) (M_PI * (x) / 180.0)

    //弧度转角度

    define kRadianToDegrees(radian) (radian * 180.0) / (M_PI)`

    相关文章

      网友评论

          本文标题:iOS开发常用宏定义(持续更新)

          本文链接:https://www.haomeiwen.com/subject/dxgdbttx.html