• UI进阶之常见文件


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

    2>pch文件

     * 遇到的问题:
                               1> 整个项目中很多地方都在使用某个类的头文件。
                               
                               2> 整个项目中很多地方都在使用同一个""
                               
                               3> 在项目中很多地方用到了NSLog()函数, 想一下子全都清除掉。
    
                               
                   * 解决上面的问题, 可以通过使用PCH文件(Prefix Header File)。
                               
                   * pch文件就是一个头文件(类似于*.h文件)。
                    
                   ** 注意: PCH文件的特点, 项目中的所有其他代码文件无需显示导入该PCH文件, 默认就都可以访问(其他文件无需手动#import该文件)。
                       /**
                        参考代码:
                        // 假设在整个项目中有多个地方在使用Person类, 那么可以在每个使用到Person类的地方都#import "Person.h", 或者把#import "Person.h"放到pch文件中。
                        
                        */
                   
                   * 主要作用:
                       1> 可以放一些公用的宏定义。
                       
                       2> 把公共的Model类的#import导入写到pch文件中。
                       
                       3> 自定义NSLog()。例如: #define SteveZLog(...) NSLog(__VA_ARGS__)
                               
                               
                   ** 遇到的问题: 在项目中很多地方用到了NSLog()函数, 想一下子全都清除掉。

    代码:

     #ifdef DEBUG 
     #define SteveZLog(...) NSLog(__VA_ARGS__)
     #else
     #define SteveZLog(...)
    #endif
    补充, 程序开发阶段分为:
                    1. 调试阶段, 写代码、调错误,需要使用NSLog()。同时在调试阶段系统会自定义一个叫做DEBUG的宏。
             
                    2. 发布阶段, 写好的代码生成ipa等压缩文件, 上传到AppStore, 安装到用户设备上, 不需要NSLog()。 同时系同会自动删除叫做DEBUG的宏。
             
                    3. 综上所述, 我们可以如下自定义一个NSLog():
                    
                    #ifdef DEBUG 
                    #define SteveZLog(...) NSLog(__VA_ARGS__)
                    #else
                    #define SteveZLog(...)
                    #endif
    所有与OC相关的宏定义都要写在:
                        #ifdef __OBJC__
                        #endif
                    里面, 因为写在这个if中的所有内容只有OC代码才可以使用, 当在项目中新建了一个.c文件是不可以使用的(不使用就不会报错), 否则如果写在了外面,新建一个.c的程序也能使用,就报错了。比如C语言中没有#import, 只有#include <xx.h>
                         
                         // 判断如果是OC文件才引入这些宏, 如果是普通C语言文件则不引入。否则当在项目中添加C语言文件时报错。
                         #ifdef __OBJC__
                         
                             #define ABC 10
                             
                             #import "Person.h"
                             
                             #ifdef DEBUG
                             #define SteveZLog(...) NSLog(__VA_ARGS__)
                             #else
                             #define SteveZLog(...)
             
                         #endif
                         
                         
                         #endif
             
             */

    特别注意:

    * 在xcode6.1中, 默认没有创建pch文件。
                       ** 需要自己新建一个
                       
                       ** 创建方式: 选择"Supporting Files" -> 右键 -> "New File" -> "Other" -> "PCH File" -> "PrefixHeader.pch"* 在该文件中定义如下宏:
                        **  #define ABC 10
                               
                    * 选中项目 -> Build Setting -> All -> 搜索"prefix head" -> 修改Prefix Header的内容为:
                        ** $(SRCROOT)/$(PRODUCT_NAME)/PrefixHeader.pch
                        ** 或者
                        ** $(SRCROOT)/对应的文件夹名/PrefixHeader.pch
                        ** 参考连接: http://www.cnblogs.com/YouXianMing/p/3989155.h
  • 相关阅读:
    七牛云李意扬:如何收集 Go 实时覆盖率丨ECUG Meetup 回顾
    OpenTelemetry 微服务链路追踪
    空接口
    安全规则集合
    采用最快回应
    Golang单元测试实战
    源码 kratos 配置热加载分析
    烟花 光影
    控制Repeater显示列数
    基本代码安全知识
  • 原文地址:https://www.cnblogs.com/-boy/p/4147563.html
Copyright © 2020-2023  润新知