zoukankan      html  css  js  c++  java
  • OC常用宏

    #ifndef iOS_Constants_h
    #define iOS_Constants_h
    
    /* ****************************************************************************************************************** */
    /** DEBUG LOG **/
    #ifdef DEBUG
    
    #define DLog( s, ... ) NSLog( @"< %@:(%d) > %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
    
    #else
    
    #define DLog( s, ... )
    
    #endif
    
    
    /** DEBUG RELEASE **/
    #if DEBUG
    
    #define MCRelease(x)            [x release]
    
    #else
    
    #define MCRelease(x)            [x release], x = nil
    
    #endif
    
    
    /** NIL RELEASE **/
    #define NILRelease(x)           [x release], x = nil
    
    
    /* ****************************************************************************************************************** */
    #pragma mark - Frame (宏 x, y, width, height)
    
    // Screen Scale
    #define MainScreenScale         [[UIScreen mainScreen] scale]
    
    // App Frame
    #define Application_Frame       [[UIScreen mainScreen] applicationFrame]
    
    // App Frame Height&Width
    #define App_Frame_Height        [[UIScreen mainScreen] applicationFrame].size.height
    #define App_Frame_Width         [[UIScreen mainScreen] applicationFrame].size.width
    
    // MainScreen Height&Width
    #define Main_Screen_Height      [[UIScreen mainScreen] bounds].size.height
    #define Main_Screen_Width       [[UIScreen mainScreen] bounds].size.width
    
    // View 坐标(x,y)和宽高(width,height)
    #define X(v)                    (v).frame.origin.x
    #define Y(v)                    (v).frame.origin.y
    #define WIDTH(v)                (v).frame.size.width
    #define HEIGHT(v)               (v).frame.size.height
    
    #define MinX(v)                 CGRectGetMinX((v).frame)
    #define MinY(v)                 CGRectGetMinY((v).frame)
    
    #define MidX(v)                 CGRectGetMidX((v).frame)
    #define MidY(v)                 CGRectGetMidY((v).frame)
    
    #define MaxX(v)                 CGRectGetMaxX((v).frame)
    #define MaxY(v)                 CGRectGetMaxY((v).frame)
    
    // 系统控件默认高度
    #define kStatusBarHeight        (20.f)
    
    #define kTopBarHeight           (44.f)
    #define kBottomBarHeight        (49.f)
    
    #define kCellDefaultHeight      (44.f)
    
    #define kEnglishKeyboardHeight  (216.f)
    #define kChineseKeyboardHeight  (252.f)
    
    
    /* ****************************************************************************************************************** */
    #pragma mark - Funtion Method (宏 方法)
    
    // PNG JPG 图片路径
    #define PNGPATH(NAME)           [[NSBundle mainBundle] pathForResource:[NSString stringWithUTF8String:NAME] ofType:@"png"]
    #define JPGPATH(NAME)           [[NSBundle mainBundle] pathForResource:[NSString stringWithUTF8String:NAME] ofType:@"jpg"]
    #define PATH(NAME, EXT)         [[NSBundle mainBundle] pathForResource:(NAME) ofType:(EXT)]
    
    // 加载图片
    #define PNGIMAGE(NAME)          [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:(NAME) ofType:@"png"]]
    #define JPGIMAGE(NAME)          [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:(NAME) ofType:@"jpg"]]
    #define IMAGE(NAME, EXT)        [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:(NAME) ofType:(EXT)]]
    
    #define IMAGENAMED(NAME)        [UIImage imageNamed:NAME]
    
    // 字体大小(常规/粗体)
    #define BOLDSYSTEMFONT(FONTSIZE)[UIFont boldSystemFontOfSize:FONTSIZE]
    #define SYSTEMFONT(FONTSIZE)    [UIFont systemFontOfSize:FONTSIZE]
    #define FONT(NAME, FONTSIZE)    [UIFont fontWithName:(NAME) size:(FONTSIZE)]
    
    // 颜色(RGB)
    #define RGBCOLOR(r, g, b)       [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:1]
    #define RGBACOLOR(r, g, b, a)   [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:(a)]
    
    // 当前版本
    #define FSystemVersion          ([[[UIDevice currentDevice] systemVersion] floatValue])
    #define DSystemVersion          ([[[UIDevice currentDevice] systemVersion] doubleValue])
    #define SSystemVersion          ([[UIDevice currentDevice] systemVersion])
    
    // 当前语言
    #define CURRENTLANGUAGE         ([[NSLocale preferredLanguages] objectAtIndex:0])
    
    // 是否Retina屏
    #define isRetina                ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? 
                                    CGSizeEqualToSize(CGSizeMake(640, 960), 
                                                      [[UIScreen mainScreen] currentMode].size) : 
                                    NO)
    
    // 是否iPhone5
    #define isiPhone5               ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? 
                                    CGSizeEqualToSize(CGSizeMake(640, 1136), 
                                                      [[UIScreen mainScreen] currentMode].size) : 
                                    NO)
    
    // 是否iPad
    #define isPad                   (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    
    // UIView - viewWithTag
    #define VIEWWITHTAG(_OBJECT, _TAG)
                                    
                                    [_OBJECT viewWithTag : _TAG]
    
    // 本地化字符串
    /** NSLocalizedString宏做的其实就是在当前bundle中查找资源文件名“Localizable.strings”(参数:键+注释) */
    #define LocalString(x, ...)     NSLocalizedString(x, nil)
    /** NSLocalizedStringFromTable宏做的其实就是在当前bundle中查找资源文件名“xxx.strings”(参数:键+文件名+注释) */
    #define AppLocalString(x, ...)  NSLocalizedStringFromTable(x, @"zjj", nil)
    
    // App Name
    #define AppDisplayName          [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"]
    
    // RGB颜色转换(16进制->10进制)
    #define UIColorFromRGB(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]
    
    #if TARGET_OS_IPHONE
    /** iPhone Device */
    #endif
    
    #if TARGET_IPHONE_SIMULATOR
    /** iPhone Simulator */
    #endif
    
    // ARC
    #if __has_feature(objc_arc)
    /** Compiling with ARC */
    #else
    /** Compiling without ARC */
    #endif
    
    
    /* ****************************************************************************************************************** */
    #pragma mark - Log Method (宏 LOG)
    
    // 日志 / 断点
    // =============================================================================================================================
    // DEBUG模式
    #define ITTDEBUG
    
    // LOG等级
    #define ITTLOGLEVEL_INFO        10
    #define ITTLOGLEVEL_WARNING     3
    #define ITTLOGLEVEL_ERROR       1
    
    // =============================================================================================================================
    // LOG最高等级
    #ifndef ITTMAXLOGLEVEL
    
    #ifdef DEBUG
    #define ITTMAXLOGLEVEL ITTLOGLEVEL_INFO
    #else
    #define ITTMAXLOGLEVEL ITTLOGLEVEL_ERROR
    #endif
    
    #endif
    
    // =============================================================================================================================
    // LOG PRINT
    // The general purpose logger. This ignores logging levels.
    #ifdef ITTDEBUG
    #define ITTDPRINT(xx, ...)      NSLog(@"< %s:(%d) > : " xx , __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
    #else
    #define ITTDPRINT(xx, ...)      ((void)0)
    #endif
    
    // Prints the current method's name.
    #define ITTDPRINTMETHODNAME()   ITTDPRINT(@"%s", __PRETTY_FUNCTION__)
    
    // Log-level based logging macros.
    #if ITTLOGLEVEL_ERROR <= ITTMAXLOGLEVEL
    #define ITTDERROR(xx, ...)      ITTDPRINT(xx, ##__VA_ARGS__)
    #else
    #define ITTDERROR(xx, ...)      ((void)0)
    #endif
    
    #if ITTLOGLEVEL_WARNING <= ITTMAXLOGLEVEL
    #define ITTDWARNING(xx, ...)    ITTDPRINT(xx, ##__VA_ARGS__)
    #else
    #define ITTDWARNING(xx, ...)    ((void)0)
    #endif
    
    #if ITTLOGLEVEL_INFO <= ITTMAXLOGLEVEL
    #define ITTDINFO(xx, ...)       ITTDPRINT(xx, ##__VA_ARGS__)
    #else
    #define ITTDINFO(xx, ...)       ((void)0)
    #endif
    
    // 条件LOG
    #ifdef ITTDEBUG
    #define ITTDCONDITIONLOG(condition, xx, ...)
                                    
                                    {
                                        if ((condition))
                                        {
                                            ITTDPRINT(xx, ##__VA_ARGS__);
                                        }
                                    }
    #else
    #define ITTDCONDITIONLOG(condition, xx, ...)
                                    
                                    ((void)0)
    #endif
    
    // 断点Assert
    #define ITTAssert(condition, ...)
                                    
                                    do {
                                        if (!(condition))
                                        {
                                            [[NSAssertionHandler currentHandler]
                                            handleFailureInFunction:[NSString stringWithFormat:@"< %s >", __PRETTY_FUNCTION__]
                                                               file:[[NSString stringWithUTF8String:__FILE__] lastPathComponent]
                                                         lineNumber:__LINE__
                                                        description:__VA_ARGS__];
                                        }
                                    } while(0)
    
    
    /* ****************************************************************************************************************** */
    #pragma mark - Constants (宏 常量)
    
    /** 时间间隔 */
    #define kHUDDuration            (1.f)
    
    /** 一天的秒数 */
    #define SecondsOfDay            (24.f * 60.f * 60.f)
    /** 秒数 */
    #define Seconds(Days)           (24.f * 60.f * 60.f * (Days))
    
    /** 一天的毫秒数 */
    #define MillisecondsOfDay       (24.f * 60.f * 60.f * 1000.f)
    /** 毫秒数 */
    #define Milliseconds(Days)      (24.f * 60.f * 60.f * 1000.f * (Days))
    
    #endif
  • 相关阅读:
    android 振动
    linux实用命令-查看文件夹的大小
    无显示屏的开发板抓屏
    传感器Sensor的使用-距离感应(听筒模式)
    4.4原生应用获取通话状态
    git服务器的使用
    (转)浅谈ANR及log分析ANR
    ubuntu下从软件中心安装软件时的软件缓存目录
    mysql————Innodb的可重复读的情况下如何避免幻读?
    MyISAM和Innodb的区别
  • 原文地址:https://www.cnblogs.com/needly/p/3401093.html
Copyright © 2011-2022 走看看