zoukankan      html  css  js  c++  java
  • iOS重用宏定义

    iOS 多快好省的宏(转)

    原文地址:http://my.oschina.net/yongbin45/blog/150149

    //  字符串:
    #ifndef nilToEmpty
    #define nilToEmpty(object) (object!=nil)?object:@""
    #endif
    
    #ifndef formatStringOfObject
    #define formatStringOfObject(object) [NSString stringWithFormat:@"%@", object]
    #endif
    
    #ifndef nilToEmptyFormatStringOfObject
    #define nilToEmptyFormatStringOfObject(object) formatStringOfObject(nilToEmpty(object))
    #endif
    
    
    
    //  图片:
    #ifndef imagePath
    #define imagePath(imageName) [[NSBundle mainBundle] pathForResource:imageName ofType:@"png"]
    #endif
    
    
    //  颜色
    #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 HEXCOLOR(c)                         [UIColor colorWithRed:((c>>16)&0xFF)/255.0f green:((c>>8)&0xFF)/255.0f blue:(c&0xFF)/255.0f alpha:1.0f];
    
    
    //  debug
    #define debug(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
    
    
    //  iOS 支持
    #define SUPPORT_IPHONE_OS_VERSION(version) ( __IPHONE_OS_VERSION_MIN_REQUIRED <= version && __IPHONE_OS_VERSION_MAX_ALLOWED >= version)
    
    
    //  Application delegate
    #define ApplicationDelegate                 ((AppDelegate *)[[UIApplication sharedApplication] delegate])
    
    
    //  主要单例
    #define UserDefaults                        [NSUserDefaults standardUserDefaults]
    #define NotificationCenter                  [NSNotificationCenter defaultCenter]
    #define SharedApplication                   [UIApplication sharedApplication]
    
    
    #define Bundle                              [NSBundle mainBundle]
    
    #define MainScreen                          [UIScreen mainScreen]
    
    
    //  网络指示
    #define ShowNetworkActivityIndicator()      [UIApplication sharedApplication].networkActivityIndicatorVisible = YES
    #define HideNetworkActivityIndicator()      [UIApplication sharedApplication].networkActivityIndicatorVisible = NO
    #define NetworkActivityIndicatorVisible(x)  [UIApplication sharedApplication].networkActivityIndicatorVisible = x
    
    
    //  主要控件
    #define NavBar                              self.navigationController.navigationBar
    #define TabBar                              self.tabBarController.tabBar
    
    
    //  大小尺寸
    #define ScreenWidth                         [[UIScreen mainScreen] bounds].size.width
    #define ScreenHeight                        [[UIScreen mainScreen] bounds].size.height
    
    #define NavBarHeight                        self.navigationController.navigationBar.bounds.size.height
    #define TabBarHeight                        self.tabBarController.tabBar.bounds.size.height
    
    
    #define TouchHeightDefault                  44.0f
    #define TouchHeightSmall                    32.0f
    
    
    #define ViewWidth(v)                        v.frame.size.width
    #define ViewHeight(v)                       v.frame.size.height
    #define ViewX(v)                            v.frame.origin.x
    #define ViewY(v)                            v.frame.origin.y
    
    
    #define SelfViewWidth                       self.view.bounds.size.width
    #define SelfViewHeight                      self.view.bounds.size.height
    
    
    #define RectX(rect)                            rect.origin.x
    #define RectY(rect)                            rect.origin.y
    #define RectWidth(rect)                        rect.size.width
    #define RectHeight(rect)                       rect.size.height
    
    
    #define RectSetWidth(rect, w)                  CGRectMake(RectX(rect), RectY(rect), w, RectHeight(rect))
    #define RectSetHeight(rect, h)                 CGRectMake(RectX(rect), RectY(rect), RectWidth(rect), h)
    #define RectSetX(rect, x)                      CGRectMake(x, RectY(rect), RectWidth(rect), RectHeight(rect))
    #define RectSetY(rect, y)                      CGRectMake(RectX(rect), y, RectWidth(rect), RectHeight(rect))
    
    
    #define RectSetSize(rect, w, h)                CGRectMake(RectX(rect), RectY(rect), w, h)
    #define RectSetOrigin(rect, x, y)              CGRectMake(x, y, RectWidth(rect), RectHeight(rect))
    
    
    
    //  内存管理
    #if ! __has_feature(objc_arc)
        #define SBAutorelease(__v) ([__v autorelease]);
        #define SBReturnAutoreleased SBAutorelease
    
        #define SBRetain(__v) ([__v retain]);
        #define SBReturnRetained SBRetain
    
        #define SBRelease(__v) ([__v release]);
    
        #define SBDispatchQueueRelease(__v) (dispatch_release(__v));
    #else
        // -fobjc-arc
        #define SBAutorelease(__v)
        #define SBReturnAutoreleased(__v) (__v)
    
        #define SBRetain(__v)
        #define SBReturnRetained(__v) (__v)
    
        #define SBRelease(__v)
    
        #if TARGET_OS_IPHONE
            // Compiling for iOS
            #if __IPHONE_OS_VERSION_MIN_REQUIRED >= 60000
                // iOS 6.0 or later
                #define SBDispatchQueueRelease(__v)
            #else
                // iOS 5.X or earlier
                #define SBDispatchQueueRelease(__v) (dispatch_release(__v));
            #endif
        #else
            // Compiling for Mac OS X
            #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080
                // Mac OS X 10.8 or later
                #define SBDispatchQueueRelease(__v)
            #else
                // Mac OS X 10.7 or earlier
                #define SBDispatchQueueRelease(__v) (dispatch_release(__v));
            #endif
        #endif
    #endif

      

    iOS开发中那些高效常用的宏(转)

    原文地址:http://blog.csdn.net/duxinfeng2010/article/details/9067947

    //补充1
    
    //----------------------图片----------------------------  
      
    //读取本地图片  
    #define LOADIMAGE(file,ext) [UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:file ofType:ext]]  
      
    //定义UIImage对象  
    #define IMAGE(A) [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:A ofType:nil]]  
      
    //定义UIImage对象  
    #define ImageNamed(_pointer) [UIImage imageNamed:[UIUtil imageName:_pointer]]  
      
    //建议使用前两种宏定义,性能高于后者  
    //----------------------图片----------------------------  
    //补充2
    
    //----------------------其他----------------------------  
      
    //方正黑体简体字体定义  
    #define FONT(F) [UIFont fontWithName:@"FZHTJW--GB1-0" size:F]  
      
      
    //定义一个API  
    #define APIURL                @"http://xxxxx/"  
    //登陆API  
    #define APILogin              [APIURL stringByAppendingString:@"Login"]  
      
    //设置View的tag属性  
    #define VIEWWITHTAG(_OBJECT, _TAG)    [_OBJECT viewWithTag : _TAG]  
    //程序的本地化,引用国际化的文件  
    #define MyLocal(x, ...) NSLocalizedString(x, nil)  
      
    //G-C-D  
    #define BACK(block) dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), block)  
    #define MAIN(block) dispatch_async(dispatch_get_main_queue(),block)  
      
    //NSUserDefaults 实例化  
    #define USER_DEFAULT [NSUserDefaults standardUserDefaults]  
      
      
    //由角度获取弧度 有弧度获取角度  
    #define degreesToRadian(x) (M_PI * (x) / 180.0)  
    #define radianToDegrees(radian) (radian*180.0)/(M_PI)  
      
      
      
    //单例化一个类  
    #define SYNTHESIZE_SINGLETON_FOR_CLASS(classname)   
      
    static classname *shared##classname = nil;   
      
    + (classname *)shared##classname   
    {   
    @synchronized(self)   
    {   
    if (shared##classname == nil)   
    {   
    shared##classname = [[self alloc] init];   
    }   
    }   
      
    return shared##classname;   
    }   
      
    + (id)allocWithZone:(NSZone *)zone   
    {   
    @synchronized(self)   
    {   
    if (shared##classname == nil)   
    {   
    shared##classname = [super allocWithZone:zone];   
    return shared##classname;   
    }   
    }   
      
    return nil;   
    }   
      
    - (id)copyWithZone:(NSZone *)zone   
    {   
    return self;   
    }  
      
      
      
    #endif
    //补充3
    
    //----------------------颜色类---------------------------  
    // 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]  
      
    //带有RGBA的颜色设置  
    #define COLOR(R, G, B, A) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:A]  
      
    // 获取RGB颜色  
    #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 BACKGROUND_COLOR [UIColor colorWithRed:242.0/255.0 green:236.0/255.0 blue:231.0/255.0 alpha:1.0]  
      
    //清除背景色  
    #define CLEARCOLOR [UIColor clearColor]  
      
    #pragma mark - color functions  
    #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)]  
      
    //----------------------颜色类-------------------------- 
    //补充4
    
    //----------------------系统----------------------------  
      
    //获取系统版本  
    #define IOS_VERSION [[[UIDevice currentDevice] systemVersion] floatValue]  
    #define CurrentSystemVersion [[UIDevice currentDevice] systemVersion]  
      
    //获取当前语言  
    #define CurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0])  
      
    //判断是否 Retina屏、设备是否%fhone 5、是否是iPad  
    #define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)  
    #define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)  
    #define isPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)  
      
      
    //判断是真机还是模拟器  
    #if TARGET_OS_IPHONE  
    //iPhone Device  
    #endif  
      
    #if TARGET_IPHONE_SIMULATOR  
    //iPhone Simulator  
    #endif  
      
    //检查系统版本  
    #define SYSTEM_VERSION_EQUAL_TO(v)                  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)  
    #define SYSTEM_VERSION_GREATER_THAN(v)              ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)  
    #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)  
    #define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)  
    #define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v)     ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)  
      
      
    //----------------------系统---------------------------- 
  • 相关阅读:
    Multi-Sensor, Multi- Network Positioning
    基于智能手机的3D地图导航
    2010上海世博会三维导航地图
    hdu 5452(树链刨分)
    蓝桥杯危险系数
    蓝桥杯横向打印二叉树(中序+先序遍历)
    蓝桥杯幸运数(线段树)
    hdu 5185(DP)
    2014江西理工大学C语言程序设计竞赛高级组题解
    uva 12730(期望经典)
  • 原文地址:https://www.cnblogs.com/JuneWang/p/3763360.html
Copyright © 2011-2022 走看看