博客
关于我
PCH文件设置以及常用的宏
阅读量:596 次
发布时间:2019-03-11

本文共 4752 字,大约阅读时间需要 15 分钟。

PCH ??? Xcode ????????

PCH ????? Pre-Compiled Header ???? Xcode ??????????????????????????????????????????????

1. PCH ????

PCH ???????????????????????????? Xcode 6 ???????????????????? PCH ?????????

2. ???? PCH ??

? Xcode ????? PCH ????????

  • ?? Xcode ????????????Supporting Files?????
  • ????????????
  • ?????? "Other" -> "PCH File"?
  • ?????? PCH ?????? .pch ???
  • ?????????? Xcode ????????
  • ? PCH ?????????????????????

    3. ?????

    ? PCH ??????????????? .m ???????????????????

    3.1 ???????

    #define SCREEN_WIDTH    [UIScreen mainScreen].bounds.size.width#define SCREEN_HEIGHT   [UIScreen mainScreen].bounds.size.height

    ????????????????

    #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000#define SCREEN_WIDTH ([[UIScreen mainScreen] respondsToSelector:@selector(nativeBounds)] ? [UIScreen mainScreen].nativeBounds.size.width / [UIScreen mainScreen].nativeScale : [UIScreen mainScreen].bounds.size.width)#define SCREEN_HEIGHT ([[UIScreen mainScreen] respondsToSelector:@selector(nativeBounds)] ? [UIScreen mainScreen].nativeBounds.size.height / [UIScreen mainScreen].nativeScale : [UIScreen mainScreen].bounds.size.height)#define SCREEN_SIZE ([[UIScreen mainScreen] respondsToSelector:@selector(nativeBounds)] ? CGSizeMake([UIScreen mainScreen].nativeBounds.size.width / [UIScreen mainScreen].nativeScale, [UIScreen mainScreen].nativeBounds.size.height / [UIScreen mainScreen].nativeScale) : [UIScreen mainScreen].bounds.size)#else#define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width#define SCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height#define SCREEN_SIZE [UIScreen mainScreen].bounds.size#endif

    3.2 ??????

    #define WMNotificationCenter [NSNotificationCenter defaultCenter]

    3.3 ??????

    #define WMRandomColor [UIColor colorWithRed:arc4random_uniform(256)/255.0 green:arc4random_uniform(256)/255.0 blue:arc4random_uniform(256)/255.0 alpha:1.0]

    3.4 ?? RGB/RGBA ??

    #define WMRGBColor(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]#define WMRGBAColor(r, g, b, a) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:a]#define WMClearColor [UIColor clearColor]

    3.5 ?????

    #ifdef DEBUG#define LRLog(...) NSLog(@"%s ?%d? \n %@", __func__, __LINE__, [NSString stringWithFormat:__VA_ARGS__])#else#define LRLog(...)#endif

    3.6 ???????

    #define WMWeakSelf(type)  __weak typeof(type) weak##type = type;#define WMStrongSelf(type) __strong typeof(type) type = weak##type;

    3.7 ???????

    #define WMViewBorderRadius(View, Radius, Width, Color) \[View.layer setCornerRadius:Radius]; \[View.layer setMasksToBounds:YES]; \[View.layer setBorderWidth:Width]; \[View.layer setBorderColor:[Color CGColor]]

    3.8 ???????

    #define WMDegreesToRadian(x) (M_PI * x / 180.0)#define WMRadianToDegrees(radian) (radian * 180.0 / M_PI)

    3.9 ??????/????

    // ?????#define kGetViewWidth(view)  view.frame.size.width#define kGetViewHeight(view) view.frame.size.height#define kGetViewX(view)      view.frame.origin.x#define kGetViewY(view)      view.frame.origin.y#define kGetImage(imageName) [UIImage imageNamed:[NSString stringWithFormat:@"%@", imageName]]

    3.10 ARC ? MRC ??

    #if __has_feature(objc_arc)// ARC#else// MRC#endif

    3.11 ???????????

    // ????? iPhone#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)#define IS_IPHONE ([[UIDevice currentDevice] model] isEqualToString:@"iPhone")// ????? iPad#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)#define IS_IPAD ([[UIDevice currentDevice] model] isEqualToString:@"iPad")// ????? iPod#define IS_IPOD ([[UIDevice currentDevice] model] isEqualToString:@"iPod touch")// ????? iPhone 5SE#define iPhone5SE [[UIScreen mainScreen] bounds].size.width == 320.0f && [[UIScreen mainScreen] bounds].size.height == 568.0f// ????? iPhone 6/6s#define iPhone6_6s [[UIScreen mainScreen] bounds].size.width == 375.0f && [[UIScreen mainScreen] bounds].size.height == 667.0f// ????? iPhone 6Plus/6sPlus#define iPhone6Plus_6sPlus [[UIScreen mainScreen] bounds].size.width == 414.0f && [[UIScreen mainScreen] bounds].size.height == 736.0f// ??????#define IOS_SYSTEM_VERSION [[[UIDevice currentDevice] systemVersion] floatValue]#define IOS_SYSTEM_STRING [[UIDevice currentDevice] systemVersion]// ?? iOS 8 ?????#define IOS_VERSION_8_OR_LATER (([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) ? (YES) : (NO))

    3.12 ????????

    // ????? iOS ??#if TARGET_OS_IPHONE# endif// ????????#if (TARGET_IPHONE_SIMULATOR)# else# endif

    3.13 ??????

    // ?? temp ??#define kPathTemp NSTemporaryDirectory()// ???? Document ??#define kPathDocument [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]// ???? Cache ??#define kPathCache [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]

    ????????????????????????????

    转载地址:http://lzxtz.baihongyu.com/

    你可能感兴趣的文章
    NAT网络地址转换配置详解
    查看>>
    navbar navbar-inverse 导航条设置颜色
    查看>>
    Navicat for MySQL 命令列 执行SQL语句 历史日志
    查看>>
    Navicat for MySQL 查看BLOB字段内容
    查看>>
    Navicat for MySQL笔记1
    查看>>
    Navicat for MySQL(Ubuntu)过期解决方法
    查看>>
    Navicat Premium 12 卸载和注册表的删除
    查看>>
    Navicat 导入sql文件
    查看>>
    navicat 添加外键1215错误
    查看>>
    navicat 系列软件一点击菜单栏就闪退
    查看>>
    navicat 自动关闭_干掉Navicat!MySQL官方客户端到底行不行?
    查看>>
    Navicat 设置时间默认值(当前最新时间)
    查看>>
    navicat 连接远程mysql
    查看>>
    navicat:2013-Lost connection to MySQL server at ‘reading initial communication packet解决方法
    查看>>
    Navicate for mysql 数据库设计-数据库分析
    查看>>
    Navicat下载和破解以及使用
    查看>>
    Navicat中怎样将SQLServer的表复制到MySql中
    查看>>
    navicat创建连接 2002-can‘t connect to server on localhost(10061)且mysql服务已启动问题
    查看>>
    Navicat可视化界面导入SQL文件生成数据库表
    查看>>
    Navicat向sqlserver中插入数据时提示:当 IDENTITY_INSERT 设置为 OFF 时,不能向表中的标识列插入显式值
    查看>>