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

    本文整理自:

    http://blog.csdn.net/duxinfeng2010/article/details/9067947

    http://hi.baidu.com/feng20068123/item/1935c6d022bf7513d78ed0d4

    根据自己的习惯做了一些修改,简化。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    #ifndef MacroDefinition_h
    #define MacroDefinition_h
    //AppDelegate
     
    #define APPDELEGATE [(AppDelegate*)[UIApplication sharedApplication]  delegate]
    //----------------------系统设备相关----------------------------
    //获取设备屏幕尺寸
    #define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)
    #define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)//应用尺寸
    #define APP_WIDTH [[UIScreen mainScreen]applicationFrame].size.width
    #define APP_HEIGHT [[UIScreen mainScreen]applicationFrame].size.height
    //获取系统版本
    #define IOS_VERSION [[[UIDevice currentDevice] systemVersion] floatValue]
    #define CurrentSystemVersion [[UIDevice currentDevice] systemVersion]
    #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 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
    //----------------------系统设备相关----------------------------
     
    //----------------------内存相关----------------------------
    //使用ARC和不使用ARC
    #if __has_feature(objc_arc)
    //compiling with ARC
    #else
    // compiling without ARC
    #endif
    //释放一个对象
    #define SAFE_DELETE(P) if(P) { [P release], P = nil; }
    #define SAFE_RELEASE(x) [x release];x=nil
    //----------------------内存相关----------------------------
     
    //----------------------图片相关----------------------------
    //读取本地图片
    #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:_pointer]
    //可拉伸的图片
    #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]
    //建议使用前两种宏定义,性能高于后者
    //----------------------图片相关----------------------------
     
    //----------------------颜色相关---------------------------
    // 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]
    // 获取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]
    //----------------------颜色相关--------------------------
     
    //----------------------其他----------------------------
    //方正黑体简体字体定义
    #define FONT(F) [UIFont fontWithName:@"FZHTJW--GB1-0" size:F]
    //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)]]
    //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)
    //Alert
    #define ALERT(msg) [[[UIAlertView alloc] initWithTitle:nil message:msg delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil] show]
     
    //由角度获取弧度 有弧度获取角度
    #define degreesToRadian(x) (M_PI * (x) / 180.0)
    #define radianToDegrees(radian) (radian*180.0)/(M_PI)
    //----------------------其他-------------------------------
     
    //----------------------视图相关----------------------------
    //设置需要粘贴的文字或图片
    #define PasteString(string)   [[UIPasteboard generalPasteboard] setString:string];
    #define PasteImage(image)     [[UIPasteboard generalPasteboard] setImage:image];
     
    //得到视图的left top的X,Y坐标点
    #define VIEW_TX(view) (view.frame.origin.x)
    #define VIEW_TY(view) (view.frame.origin.y)
     
    //得到视图的right bottom的X,Y坐标点
    #define VIEW_BX(view) (view.frame.origin.x + view.frame.size.width)
    #define VIEW_BY(view) (view.frame.origin.y + view.frame.size.height )
     
    //得到视图的尺寸:宽度、高度
    #define VIEW_W(view)  (view.frame.size.width)
    #define VIEW_H(view)  (view.frame.size.height)
    //得到frame的X,Y坐标点
    #define FRAME_TX(frame)  (frame.origin.x)
    #define FRAME_TY(frame)  (frame.origin.y)
    //得到frame的宽度、高度
    #define FRAME_W(frame)  (frame.size.width)
    #define FRAME_H(frame)  (frame.size.height)
    //----------------------视图相关----------------------------
     
    //---------------------打印日志--------------------------
    //Debug模式下打印日志,当前行,函数名
    #if DEBUG
    #define DLog(FORMAT, ...) fprintf(stderr," function:%s line:%d content:%s ", __FUNCTION__, __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
    #else
    #define NSLog(FORMAT, ...) nil
    #endif
    //Debug模式下打印日志,当前行,函数名 并弹出一个警告
    #ifdef DEBUG
    #   define  WDLog(fmt, ...)  { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"%s  [Line %d] ", __PRETTY_FUNCTION__, __LINE__] message:[NSString stringWithFormat:fmt, ##__VA_ARGS__]  delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alert show]; }
    #else
    #   define NSLog(...)
    #endif
    //打印Frame
    #define LogFrame(frame) NSLog(@"frame[X=%.1f,Y=%.1f,W=%.1f,H=%.1f",frame.origin.x,frame.origin.y,frame.size.width,frame.size.height)
    //打印Point
    #define LogPoint(point) NSLog(@"Point[X=%.1f,Y=%.1f]",point.x,point.y)
    //---------------------打印日志--------------------------
    #endif
  • 相关阅读:
    Kubernetes实战指南(三十三):都0202了,你还在手写k8s的yaml文件?
    Hadoop学习笔记
    Anaconda、Pycharm的安装与运行和Python环境的搭建
    常用编程软件文件配置(下载安装教程)
    error C2678: 二进制“<”: 没有找到接受“const _Ty”类型的左操作数的运算符
    Java 移位运算、符号位扩展
    c++ 集合操作
    c++ 输入与缓冲区
    python 装饰器
    python global 与 nonlocal
  • 原文地址:https://www.cnblogs.com/pandas/p/4173932.html
Copyright © 2011-2022 走看看