• 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
  • 相关阅读:
    MySQL: MySQL数据学习专题
    安装Team Foundation Server 2012过程截图
    如果你喜欢一个程序员小伙
    ASP.net MVC: 一个开源的“留言系统”
    ASP.net MVC 中Security.FormsAuthentication验证用户的状态(匿名|已登录)
    Microsoft Visual Stadio 2012 Ultimate版安整过程安装体验
    win8全面开放民间下载地址!win8下载地址 win8下载链接
    【技术贴】解决右键没有新建文本文档|右键没有新建txt
    【技术贴】虚拟机网络上有重名的解决|虚拟机Net模式提示有重名
    【技术贴】利用myeclipse自动生成java类图|java源代码自动生成类图
  • 原文地址:https://www.cnblogs.com/pandas/p/4173932.html
Copyright © 2020-2023  润新知