OC使用PCH文件实现文件的引入和宏定义命令,并附上常见的宏定义命令
1.创建预编译文件:
2.在Build Settings中进行配置:
对图中所选中的内容进行更改,PrefixHeader中填入内容如下:
$(SRCROOT)/PrefixHeader.pch
3.使用cmd+B编译;
4.常用的宏定义命令:
#ifndef PrefixHeader_pch
#define PrefixHeader_pch
// Include any system framework and library headers here that should be included in all compilation units.
// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.
//常用的系统变量预编译
//App版本号
#define kAppVersionStr [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]
//系统版本号
#define kSystemVersion ([[UIDevice currentDevice].systemVersion floatValue])
//判断机器是否是ipad iPhoneX,iPhone XS,iPhone XS Max,iPhone XR
//判断是否是 iPad
#define isPad ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
//判断iPhoneX
#define IS_IPHONE_X ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPHoneXr
#define IS_IPHONE_Xr ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(828, 1792), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPhoneXs
#define IS_IPHONE_Xs ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断iPhoneXs Max
#define IS_IPHONE_Xs_Max ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2688), [[UIScreen mainScreen] currentMode].size) && !isPad : NO)
//判断是否是留海屏
#define IS_RETAINING_SCREEN IS_IPHONE_X || IS_IPHONE_Xr || IS_IPHONE_Xs || IS_IPHONE_Xs_Max
// 状态栏高度
#define STATUS_BAR_HEIGHT (IS_RETAINING_SCREEN ? 44.f : 20.f)
// 导航栏和状态栏高度
#define HeightForNagivationBarAndStatusBar (IS_RETAINING_SCREEN ? 88.f : 64.f)
// tabBar高度
#define TAB_BAR_HEIGHT (IS_RETAINING_SCREEN ? (49.f+34.f) : 49.f)
// home indicator
#define HOME_INDICATOR_HEIGHT (IS_RETAINING_SCREEN ? 34.f : 0.f)
//修改打印方法
#ifdef DEBUG
# define NSLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...)
#endif
//屏宽
#define UI_SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
#define UI_SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)
//自定义变量预编译
#define App_Main_Color [UIColor colorFromHexCode:@"#07acf6"]
//配置16进制颜色
#define COLOR_HEX0(_hex, a) [UIColor colorWithRed:((float)((_hex & 0xFF0000) >> 16)) / 255.0 green:((float)((_hex & 0xFF00)>> 8)) / 255.0 blue:((float) (_hex & 0xFF)) / 255.0 alpha:(a)]
//配置颜色方法缩写
#define RGB(r,g,b) RGBA(r, g, b, 1.0)
#endif /* PrefixHeader_pch */