iOS PCH文件

作者: 倚楼听风雨wing | 来源:发表于2016-06-01 18:23 被阅读398次

    1.项目中的常见文件

    1.XxxxTest文件夹用来做单元测试。
    2.Products目录

    • 在Mac程序下,生产的可执行文件app会存放到该目录下。该可执行文件未加密,可使用class-dump提取出所有头文件
    • iOS程序产生的是ipa文件。这个目录对于iOS程序来说意义不大。
    • info.plist(全局配置文件, 非常重要, 不能删除 ):
    • pch文件:(Prefix Header File)(头文件)现在的项目都需要自己创建

    2.info.plist详解

    1. 在xcode5 中是"项目名称-Info.plist"表示项目的全局配置文件,非常重要。在新版本xcode中(和xcode6.1),该文件名称就叫Info.plist。
    2. 注意:自己创建的plist文件中不要包含Info关键字。
    3. Info.plist中的一些配置项:
    • Bundle display name(在xcode6.1中叫做"Bundle name"), 表示软件安装到手机上后,显示的名称。
      ** 当修改了该名称后,为了保证有效, 点击Product -> Clean, 同时将软件从模拟器中卸载掉,然后再重新运行。
    • Bundle identifier, app的唯一标识。
    • Bundle version, 每次发布软件的版本号。每次向AppStore上传的同一个软件, 新的版本号必须大于旧的, 否则无法上传。
    • Main storyboard file base name, 对应的就是选中"项目" -> "General" -> "Deployment Info" -> "Main Interface" 中的设置。
    • Supported interface orientations, 标识设备所支持的方向。对应的选中"项目" -> "General" -> "Deployment Info" -> "Device Orientation"。iPhone只支持三种方向, 不支持上下旋转(iPad支持)。Portrait(竖屏)、Landscape Left(横屏向左)、Landscape Right(横屏向右)。
    • Info.plist就是一个xml文件, 用记事本打开看一下。

    3.详解PCH文件

    1.为什么使用PCH文件

    1. 整个项目中很多地方都在使用某个类的头文件
    2. 整个项目很多地方都在用同一个"宏"
    3. 在项目中很多地方用到了NSLog()函数,想要一下子清除掉

    2.特点
    pch文件就是一个头文件(类似于*.h文件)项目中的所有其他代码文件无需显示导入该PCH文件, 默认就都可以访问(其他文件无需手动#import该 pch文件就能使用)。

    参考代码:
    假设在整个项目中有多个地方在使用WYModel类, 那么可以在每个使用到WYModel类的地方都#import "WYModel.h", 或者把#import "WYModel.h"放到pch文件中。
    

    3.如何创建PCH
    1.在XCode6.1过后默认就没有pch文件,创建方式: 选择"Supporting Files" -> 右键 -> "New File" -> "Other" -> "PCH File" -> "PrefixHeader.pch"。

    Paste_Image.png

    2.选中项目 -> Build Setting -> All -> 搜索"prefix head" -> 修改Prefix Header的内容为:

    • "$(SRCROOT)/$(PRODUCT_NAME)/PrefixHeader.pch" (如果有问题,换下面的方式,可能会与中文有关)
    • 或者"$(SRCROOT)/对应的文件夹名/PrefixHeader.pch"

    4.项目中PCH常用宏

    // 屏幕宽度
    #define SCREEN_WIDTH [[UIScreen mainScreen] bounds].size.width
    // 屏幕高度
    #define SCREEN_HEIGHT [[UIScreen mainScreen] bounds].size.height
    // Color
    #define COLOR_RGB(r,g,b) [UIColor colorWithRed:(r/255.0f) green:(g/255.0f) blue:(b/255.0f) alpha:1]
    #define COLOR_RGBA(r,g,b,a) [UIColor colorWithRed:(r/255.0f) green:(g/255.0f) blue:(b/255.0f) alpha:a]
    #define WLBHexColor(colorString) [WLBHexColor hexColor:colorString]
    // NSLog 
    #if DEBUG
    #define NSLog(s,...) NSLog(@"%s LINE:%d < %@ >",__FUNCTION__, __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__])
    #else
    #define NSLog(...) {}
    #endif
    

    相关文章

      网友评论

        本文标题:iOS PCH文件

        本文链接:https://www.haomeiwen.com/subject/eivhdttx.html