zoukankan      html  css  js  c++  java
  • IOS-常用宏定义

     

    https://github.com/zhangxigithub/ZXMacro/blob/master/ZXMacro.h

    /*

     使用方法:

     *需要时import

     *添加到-Prefix.pch文件中,所有类中都可以使用

     */

     

    //------------------------------------Debug/Release

    #ifdef DEBUG

    //Debug模式

    //...

    #else

    //发布模式

    //...

     

    //屏蔽NSLog

    #define NSLog(...) {};

    #endif

     

     

    //------------------------------------Simulator/Device

    //区分模拟器和真机

    #if TARGET_OS_IPHONE

    //iPhone Device

    #endif

     

    #if TARGET_IPHONE_SIMULATOR

    //iPhone Simulator

    #endif

     

    //------------------------------------ARC/no RAC

    //ARC

    #if __has_feature(objc_arc)

    //compiling with ARC

    #else

    // compiling without ARC

    #endif

     

    //Block

    typedef void(^VoidBlock)();

    typedef BOOL(^BoolBlock)();

    typedef int (^IntBlock) ();

    typedef id  (^IDBlock)  ();

     

    typedef void(^VoidBlock_int)(int);

    typedef BOOL(^BoolBlock_int)(int);

    typedef int (^IntBlock_int) (int);

    typedef id  (^IDBlock_int)  (int);

     

    typedef void(^VoidBlock_string)(NSString*);

    typedef BOOL(^BoolBlock_string)(NSString*);

    typedef int (^IntBlock_string) (NSString*);

    typedef id  (^IDBlock_string)  (NSString*);

     

    typedef void(^VoidBlock_id)(id);

    typedef BOOL(^BoolBlock_id)(id);

    typedef int (^IntBlock_id) (id);

    typedef id  (^IDBlock_id)  (id);

     

     

    //System

    #define PasteString(string)   [[UIPasteboard generalPasteboard] setString:string];

    #define PasteImage(image)     [[UIPasteboard generalPasteboard] setImage:image];

     

     

    //Image

    //可拉伸的图片

     

    #define ResizableImage(name,top,left,bottom,right) [[UIImage imageNamed:name] resizableImageWithCapInsets:UIEdgeInsetsMake(top,left,bottom,right)]

    #define ResizableImageWithMode(name,top,left,bottom,right,mode) [[UIImage imageNamed:name] resizableImageWithCapInsets:UIEdgeInsetsMake(top,left,bottom,right) resizingMode:mode]

     

    //file

    //读取文件的文本内容,默认编码为UTF-8

    #define FileString(name,ext)            [[NSString alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:(name) ofType:(ext)] encoding:NSUTF8StringEncoding error:nil]

    #define FileDictionary(name,ext)        [[NSDictionary alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:(name) ofType:(ext)]]

    #define FileArray(name,ext)             [[NSArray alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:(name) ofType:(ext)]]

     

    //数学

    #define PI 3.14159

     

    //输出frame(frame是结构体,没法%@)

    #define LOGFRAME(f) NSLog(@" x:%f y:%f %f height:%f ",f.origin.x,f.origin.y,f.size.width,f.size.height)

    #define LOGBOOL(b)  NSLog(@"%@",b?@"YES":@"NO");

    //弹出信息

    #define ALERT(msg) [[[UIAlertView alloc] initWithTitle:nil message:msg delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil] show]

     

     

    //App

    #define kApp ((AppDelegate *)[UIApplication sharedApplication].delegate)

    #define kNav ((AppDelegate *)[UIApplication sharedApplication].delegate.navigationController)

     

     

    //color

    #define RGB(r, g, b)             [UIColor colorWithRed:((r) / 255.0) green:((g) / 255.0) blue:((b) / 255.0) alpha:1.0]

    #define RGBAlpha(r, g, b, a)     [UIColor colorWithRed:((r) / 255.0) green:((g) / 255.0) blue:((b) / 255.0) alpha:(a)]

     

    #define HexRGB(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 HexRGBAlpha(rgbValue,a) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:(a)]

     

    //转换

    #define I2S(number) [NSString stringWithFormat:@"%d",number]

    #define F2S(number) [NSString stringWithFormat:@"%f",number]

    #define DATE(stamp) [NSDate dateWithTimeIntervalSince1970:[stamp intValue]];

     

     

     

    //设备屏幕尺寸

    #define kScreen_Height   ([UIScreen mainScreen].bounds.size.height)

    #define kScreen_Width    ([UIScreen mainScreen].bounds.size.width)

    #define kScreen_Frame    (CGRectMake(0, 0 ,kScreen_Width,kScreen_Height))

    #define kScreen_CenterX  kScreen_Width/2

    #define kScreen_CenterY  kScreen_Height/2

     

     

    //应用尺寸(不包括状态栏,通话时状态栏高度不是20,所以需要知道具体尺寸)

    #define kContent_Height   ([UIScreen mainScreen].applicationFrame.size.height)

    #define kContent_Width    ([UIScreen mainScreen].applicationFrame.size.width)

    #define kContent_Frame    (CGRectMake(0, 0 ,kContent_Width,kContent_Height))

    #define kContent_CenterX  kContent_Width/2

    #define kContent_CenterY  kContent_Height/2

     

     

     

    /*

    类似九宫格的九个点

     

     p1 --- p2 --- p3

     |      |      |

     p4 --- p5 --- p6

     |      |      |

     p7 --- p8 --- p9

     

    */

    #define kP1 CGPointMake(0                 ,0)

    #define kP2 CGPointMake(kContent_Width/2  ,0)

    #define kP3 CGPointMake(kContent_Width    ,0)

    #define kP4 CGPointMake(0                 ,kContent_Height/2)

    #define kP5 CGPointMake(kContent_Width/2  ,kContent_Height/2)

    #define kP6 CGPointMake(kContent_Width    ,kContent_Height/2)

    #define kP7 CGPointMake(0                 ,kContent_Height)

    #define kP8 CGPointMake(kContent_Width/2  ,kContent_Height)

    #define kP9 CGPointMake(kContent_Width    ,kContent_Height)

     

    //*********************************************

     

     

    //GCD

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

     

     

    //Device

    #define isIOS4 ([[[UIDevice currentDevice] systemVersion] intValue]==4)

    #define isIOS5 ([[[UIDevice currentDevice] systemVersion] intValue]==5)

    #define isIOS6 ([[[UIDevice currentDevice] systemVersion] intValue]==6)

    #define isAfterIOS4 ([[[UIDevice currentDevice] systemVersion] intValue]>4)

    #define isAfterIOS5 ([[[UIDevice currentDevice] systemVersion] intValue]>5)

    #define isAfterIOS6 ([[[UIDevice currentDevice] systemVersion] intValue]>6)

     

    #define iOS ([[[UIDevice currentDevice] systemVersion] floatValue])

     

    #define isRetina ([[UIScreen mainScreen] scale]==2)

    #define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)

    #define isPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

     

     

    //拨打电话

    #define canTel                 ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel:"]])

    #define tel(phoneNumber)       ([[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel:%@",phoneNumber]]])

    #define telprompt(phoneNumber) ([[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"telprompt:%@",phoneNumber]]])

     

    //打开URL

    #define canOpenURL(appScheme) ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:appScheme]])

    #define openURL(appScheme) ([[UIApplication sharedApplication] openURL:[NSURL URLWithString:appScheme]])

     

  • 相关阅读:
    2020 CCPC Wannafly Winter Camp Day2 E阔力梯的树(树上启发式合并)
    牛客练习赛73D 离别(线段树)
    从零开始部署图书管理系统
    linux下安装nginx(编译安装)及反向代理及负载均衡
    linux下MariaDB安装
    linux下virtualenvwrapper安装
    linux下安装虚拟环境
    linux下安装django2.2
    linux下安装nginx(yum源安装)
    linux系统优化命令--day03
  • 原文地址:https://www.cnblogs.com/jhonyzhang/p/3678974.html
Copyright © 2011-2022 走看看