zoukankan      html  css  js  c++  java
  • iOS开发之info.pist文件和.pch文件

    iOS开发之info.pist文件和.pch文件

    如果你是iOS开发初学者,不用过多的关注项目中各个文件的作用。因为iOS开发的学习路线起点不在这里,这些文件只会给你学习带来困扰。

    打开一个项目,我们会看到4个主文件夹。

    Test文件夹主要是单元测试相关,不做介绍

    Frameworks文件夹中存放的是项目依赖的一些框架

    Products文件夹主要是MAC开发中使用,iOS开发不用理会。

    这里主要介绍与工程同名的文件夹内的常见的文件。

    1. info.plist文件

    建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除

    wps_clip_image-31942

    • 在旧版本Xcode创建的工程中,这个配置文件的名字就叫“Info.plist”

    • 项目中其他Plist文件不能带有“Info”这个字眼,不然会被错认为是传说中非常重要的“Info.plist”。同样,若你新接触一个项目,想要看它的配置信息,可以找带info字眼的plist文件

    • 项目中还有一个InfoPlist.strings的文件,跟Info.plist文件的本地化相关

    打开info.plist文件如下图:

    wps_clip_image-10742

    我们可以看到这是一个字典,字典中存放的是很多的健值对。我们可以在这里添加一些项目的配置。下面介绍一些比较重要的我们经常用到的一些属性:

    常见属性(红色部分是用文本编辑器打开时看到的key)

    Localiztion native development region(CFBundleDevelopmentRegion)-本地化相关

    Bundle display name(CFBundleDisplayName)-程序安装后显示的名称,限制在10-12个字符,如果超出,将被显示缩写名称。默认显示的是工程名称,如果你修改了这个值,有两点需要注意:

    1. 卸载之前已经部署的应用

    2. 清除Xcode的缓存,从新部署

    不然app的名称修改不会成功。

    Icon file(CFBundleIconFile)-app图标名称,一般为Icon.png

    Bundle version(CFBundleVersion)-应用程序的内部版本号,用于记录开发版本

    Bundle version string,short(CFBundleShortVersionString)应用程序的发布版本号,在App Store更新应用要保证目前版本大于上一版本。

    Main storyboard file base name(NSMainStoryboardFile)-主storyboard文件的名称,在项目的工程配置可以修改Main Inerface属性也可以设置主storyboard文件,并且修改后info.plist文件中的信息会自动修改。

    Bundle identifier(CFBundleIdentifier)-项目的唯一标识,部署到真机时用到,这是与其他app区分的唯一标识,若此标识相同,后部署的app将覆盖之前部署的app。

    实际上plist文件本质上就是一种特殊的XML文件。

    2. pch文件

    项目的Supporting files文件夹下面有个“工程名-Prefix.pch”文件,也是一个头文件,pch头文件的内容能被项目中的其他所有源文件共享和访问。

    pch文件的作用:

    1.存放一些全局的宏(整个项目中都用得上的宏)

    2.用来包含一些全部的头文件(整个项目中都用得上的头文件)

    3.能自动打开或者关闭日志输出功能

    自动打开或者关闭日志输出功能的代码遵循以下格式,因为NSlog()是OC中的方法,所以只有后缀为.m或.mm文件才用得着。

    #ifdef __OBJC__

    //你的代码

    #endif

    如下:

    #ifdef __OBJC__
    
    #import <UIKit/UIKit.h>
    
    #import <Foundation/Foundation.h>
    
    #import "MJPerson.h"
    
    #ifdef DEBUG  // 调试阶段,DEBUG的宏是系统在调试阶段自动添加的,所以只要判断有没有定义过DEBUG这个宏就可以在发布阶段自动的去掉项目中的所有的日志输出语句。
    
    #define CLLog(...) NSLog(__VA_ARGS__)
    
    #else // 发布阶段
    
    #define CLLog(...)
    
    #endif
  • 相关阅读:
    Instant Python 中文缩减版
    《Java疯狂讲义》(第3版)学习笔记 2
    《Java疯狂讲义》(第3版)学习笔记 1
    NXP Mifare S50标准IC卡- 访问位(Access Bits) 分析
    Python中获取异常(Exception)信息
    支持向量机(SVM)入门
    棋类游戏中人机博弈的设计
    (翻译)如何对python dict 类型按键(keys)或值(values)排序
    Python实现打印二叉树某一层的所有节点
    FIFA halts 2026 bids amid scandal 国际足联在丑闻期间停止2026年足球世界杯申请
  • 原文地址:https://www.cnblogs.com/iyou/p/3659614.html
Copyright © 2011-2022 走看看