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

    以下是一些开发中会经常用到的宏,简单的进行了整理,为了今后可以更加方便的使用,从而提升开发的效率,不为此搭进去更多时间.

    也希望有大家可以补充,从而使其更加强加!

    /**
     *  开发常用宏相关
     */
     
    #ifndef FYHCommonMacros_h
    #define FYHCommonMacros_h
     
    //开发的时候打印,但是发布的时候不打印的NSLog
    #ifdef DEBUG
    #define NSLog(...) NSLog(@"%s 第%d行 
     %@
    
    ",__func__,__LINE__,[NSString stringWithFormat:__VA_ARGS__])
    #else
    #define NSLog(...)
    #endif
     
     
     
    #pragma mark - Base
    /** 弱引用*/
    #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)
     
     
     
    #pragma mark - Size
    //获取屏幕宽度与高度
    #define kScreenWidth    
    ([[UIScreen mainScreen] respondsToSelector:@selector(nativeBounds)] ? [UIScreenmainScreen].nativeBounds.size.width/[UIScreen mainScreen].nativeScale : [UIScreen mainScreen].bounds.size.width)
    #define kScreenHeight   
    ([[UIScreen mainScreen] respondsToSelector:@selector(nativeBounds)] ? [UIScreenmainScreen].nativeBounds.size.height/[UIScreen mainScreen].nativeScale : [UIScreen mainScreen].bounds.size.height)
    #define kScreenSize     
    ([[UIScreen mainScreen] respondsToSelector:@selector(nativeBounds)] ? CGSizeMake([UIScreenmainScreen].nativeBounds.size.width/[UIScreen mainScreen].nativeScale,[UIScreenmainScreen].nativeBounds.size.height/[UIScreen mainScreen].nativeScale) : [UIScreen mainScreen].bounds.size)
     
    //屏幕 rect
    #define SCREEN_RECT     ([UIScreen mainScreen].bounds)
     
    #define SCREEN_WIDTH    ([UIScreen mainScreen].bounds.size.width)
     
    #define SCREEN_HEIGHT   ([UIScreen mainScreen].bounds.size.height)
     
    #define CONTENT_HEIGHT  (SCREEN_HEIGHT - NAVIGATION_BAR_HEIGHT - STATUS_BAR_HEIGHT)
     
     
    #pragma mark - Color
    /** 颜色*/
    #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)
    /** RGB*/
    #define Main_Color      [UIColor colorWithRed:(3)/255.0 green:(160)/255.0 blue:(235)/255.0 alpha:1.0]
    #define RGBA(r,g,b,a)   [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a]
    #define RGB(r,g,b)      RGBA(r,g,b,1.0f)
     
    #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]
     
     
     
    #pragma mark - Check
    /** 字符串是否为空*/
    #define kStringIsEmpty(str)     ([str isKindOfClass:[NSNull class]] || str == nil || str == NULL || [str isEqualToString:@"null"] || [str isEqualToString:@"<null>"] || [str isEqualToString:@"(null)"] || [str isEqualToString:@"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))
    /** 判断是否为iPhone*/
    #define kISiPhone   (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    /** 判断是否为iPad*/
    #define kISiPad     (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    /** 判断是真机还是模拟器*/
    #if TARGET_OS_IPHONE
    //真机
    #endif
    #if TARGET_IPHONE_SIMULATOR
    //模拟器
    #endif
    #pragma mark - 缩写
    #define kApplication        [UIApplication sharedApplication]
    #define kKeyWindow          [UIApplication sharedApplication].keyWindow
    #define kAppDelegate        ((AppDelegate*)[UIApplication sharedApplication].delegate)
    #define kUserDefaults       [NSUserDefaults standardUserDefaults]
    #define kNotificationCenter [NSNotificationCenter defaultCenter]
    #pragma mark - 获取相关资料
    /** APP版本号 Version*/
    #define kAppVersion         [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]
    /** APP包版本号 BundleVersion*/
    #define kAppBundle          [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]
    /** 获取设备名称*/
    #define kGetDeviceName      [[UIDevice currentDevice] name]
    /** 获取设备类型*/
    #define kGetDeviceModel     [[UIDevice currentDevice] model]
    /** 获取设备 UUID*/
    #define kGetDeviceUUID      [[UIDevice currentDevice].identifierForVendor UUIDString]
    /** 获取系统名称*/
    #define kSystemName         [[UIDevice currentDevice] systemName]
    /** 系统版本号*/
    #define kSystemVersion      [[UIDevice currentDevice] systemVersion]
    /** 获取当前语言*/
    #define kCurrentLanguage    ([[NSLocale preferredLanguages] objectAtIndex:0])
    /** 获取沙盒 Document 路径*/
    #define kDocumentPath       [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]
    /** 获取沙盒 temp 路径(注:iPhone 重启会清空)*/
    #define kTempPath           NSTemporaryDirectory()
    /** 获取沙盒 Cache 路径*/
    #define kCachePath          [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]
    /** 获取程序包中程序路径*/
    #define kResource(f, t)     [[NSBundle mainBundle] pathForResource:(f) ofType:(t)];
    /** 获取系统时间戳*/
    #define getCurrentTime       [NSString stringWithFormat:@"%ld", (long)[[NSDate date] timeIntervalSince1970]]
    /** 屏幕分辨率*/
    #define SCREEN_RESOLUTION   (SCREEN_WIDTH * SCREEN_HEIGHT * ([UIScreen mainScreen].scale))
    #endif /* FYHCommonMacros_h */
    
  • 相关阅读:
    mysqldump 导出数据库为DBname的表名为Tname的表结构 导出数据库的所有表的表结构
    mysqldump 备份某张表 Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions,
    nfs missing codepage or helper program, or other error
    date 增加一个小时 减少一个小时
    mysqldump 备份单个数据库
    mysql删除账户
    怎么删除某个用户的所有帖子?
    mongodb删除重复数据
    ReSharper2018破解详细方法
    激活windows和office
  • 原文地址:https://www.cnblogs.com/survivorsfyh/p/8360095.html
Copyright © 2011-2022 走看看