#define NavigationBar_HEIGHT 44 //导航栏高度
#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width) //动态获取物理设备的宽度
#define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height) //动态获取物理设备的高度
#define SAFE_RELEASE(x) [x release];x=nil //安全释放
#define IOS_VERSION [[[UIDevice currentDevice] systemVersion] floatValue] //获取当前设备系统版本
#define CurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0]) //获取当前设备语言
#define BACKGROUND_COLOR [UIColor colorWithRed:242.0/255.0 green:236.0/255.0 blue:231.0/255.0 alpha:1.0] //背景色
#define SAFE_DELETE(P) if(P) { [P release], P = nil; } //安全删除对象
#define COLOR(R, G, B, A) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:A] //带rgba的颜色值
#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颜色转换(16进制转10进制)
#define CLEARCOLOR [UIColor clearColor] //清除背景色
//警告框内容提示
#define degreesToRadian(x) (M_PI * (x) / 180.0) //角度转弧度
#define radianToDegrees(radian) (radian*180.0)/(M_PI) //弧度转角度
//一般的提示信息
#define mAlertView(title, msg)
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:msg delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
// 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)
//----------界面設計相關-------
#define mNavBarHeight 44
#define mTabBarHeight 50
//----------設備系統相關---------
#define mRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)
#define mIsiP5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136),[[UIScreen mainScreen] currentMode].size) : NO)
#define mIsiP6 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(750, 1334),[[UIScreen mainScreen] currentMode].size) : NO)
#define mIsiP6Plus ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2208),[[UIScreen mainScreen] currentMode].size) : NO)
#define mIsPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#define mIsiphone (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
#define mIsIOS7OrLater ([mSystemVersion floatValue] >= 7.0 ? YES : NO)
#define mIsIOS8OrLater ([mSystemVersion floatValue] >= 8.0 ? YES : NO)
#define mSystemVersion ([[UIDevice currentDevice] systemVersion])
#define mDeviceOpenUDID ([OpenUDID value])
#define mDeviceModel ([[UIDevice currentDevice] model])
#define mDeviceName ([[UIDevice currentDevice] name])
#define mCurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0])
#define mAPPVersion [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]
#define mFirstLaunch mAPPVersion //以系統版本來判斷是否第一次啓動,包括升級後啓動
#define mFirstRun @"firstRun" //判斷是否第一次運行,升級後啓動不算