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

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    //字符串是否为空
    #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 lue:((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)
  • 相关阅读:
    FastDFS
    目前存在的问题
    MongoDB JAVA开发
    [Linux] Hexo 搭建个人博客
    新目标
    1年之后的拿高工资的资本,Java线程
    Oracle在VMware虚拟机安装的配置
    adb命令关闭打开手机wifi开关
    ADB命令横竖屏切换、关闭打开wifi
    使用adb命令提取安卓手机中安装的apk
  • 原文地址:https://www.cnblogs.com/-ios/p/5833568.html
Copyright © 2011-2022 走看看