zoukankan      html  css  js  c++  java
  • iOS 开发常用宏

    来源:iOS_小松哥

    链接:http://www.jianshu.com/p/be00c3f3cafd

    大家都是知道使用宏不仅方便,而且可以提高开发效率。下面总结了iOS开发过程中的一些常用宏,会持续的往里面添加。

    //字符串是否为空

    #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 kDictIsEmpty(dic) (dic == nil || [dic isKindOfClass:[NSNull class]] || dic.allKeys == 0)

    //是否是空对象

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

    //获取屏幕宽度与高度

    #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 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 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行 %@ ",__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)

    持续更新中……。

  • 相关阅读:
    Representation Data in OpenCascade BRep
    Render OpenCascade Geometry Surfaces in OpenSceneGraph
    Render OpenCascade Geometry Curves in OpenSceneGraph
    OpenCascade Shape Representation in OpenSceneGraph
    Geometry Surface of OpenCascade BRep
    Geometry Curve of OpenCascade BRep
    Tyvj2017清北冬令营入学测试
    Spfa算法模板
    洛谷1016 旅行家的预算
    洛谷1290 欧几里得的游戏
  • 原文地址:https://www.cnblogs.com/fengmin/p/5891308.html
Copyright © 2011-2022 走看看