iOS开发UI篇—常见的项目文件介绍 - 文顶顶

iOS开发UI篇—常见的项目文件介绍

一、项目文件结构示意图

技术分享

二、文件介绍

1.products文件夹:主要用于mac电脑开发的可执行文件,ios开发用不到这个文件

2.frameworks文件夹主要用来放依赖的框架

3.test文件夹是用来做单元测试的

4.常用的文件夹(项目名称文件夹)

(1)XXXinfo.plist文件(在该项目中为  01-常见文件-Info.plist)

1)简单说明

是配置文件,该文件对工程做一些运行期的配置,非常重要,不能删除。

在旧版本xcode创建的工程中,这个配置文件的名字就叫做info.plist。

注意: 因此在载入自己准备的plist文件的时候,不要以info命名。

2)配置文件的属性介绍:

技术分享

bundle display name:

应用程序显示名称。如果要修改桌面上显示的文件名称,只要修改此处就可以了。(需要先删除原始的程序,然后清空一下工程,因为程序有缓存)

bundle identifer:

唯一标识符(唯一的标识着一个应用程序,为了保证程序的唯一性,通常把域名倒过来写)

Bundle versions string, short和bundle versions

 两个都用来表示应用程序的版本,前面的版本是正式的版本,后面的为内部版本,即公司内部开发的版本。要求提示:上传app的时候,后面更新的版本必须比之前的版本大。

main storyboard file base name

最主要的storyboard

有两种方式修改plist配置文件:

第一种方式即在如图所示的界面对配置信息进行修改。

第二种方式直接点击工程,可以通过可视化界面进行设置。

技术分享

补充说明:

a.应用程序支持的旋转方向。四个方向,垂直-不支持颠倒-左-右(最多只支持三个方向)

b.plist文件打开之后是xml文件。和字典一样,是通过键值对的形式来保存数据。在xml文件中,添加了CF前缀

 (2)pch文件(在该项目中为  01-常见文件-Prefix.pch)

1)简单说明

保存的内容能够被项目中的其他所有原文件共享。

通常情况下宏文件的处理,需要添加import导入头文件。以后可以把这个宏定义在这个文件中,不再需要导入头文件

2)应用场景:

1.用来定义一些全局的宏,

2.用来导入一些全局都能用到的头文件。

3.用来自定义NSlog,很消耗资源。(几乎是最消耗的),在发布的时候要把所有的打印都去掉。

( 补充: 在开发中,分为两个阶段。

一是开发调试阶段,需要打印log调试程序,如果程序处于调试阶段,系统会为我们定义一个名称叫做DEBUG的宏。

二是发布阶段:不需要打印log,因为log很占用资源,并且用户看不懂log,如果程序处理发布阶段,会去除这个宏。

难道在发布的时候要一个一个把NSlog都注释掉?然后在开发第二版,第三版的时候,又要把所有注释掉的NSlog都打开?

对于这个问题,在.pch文件中自定义NSlog就可以很好的解决。)

 3)自定义NSlog

在做开发的时候可以先打开pch文件,看看公司中有没有自定义NSlog。

 1 // __OBJC__这个宏,在所有的.m和.mm文件中默认就定义了这个宏
 2 #ifdef __OBJC__
 3 // 如果这个全局的头文件或者宏只需要在.m或者.mm文件中使用,
 4 // 请把该头文件或宏写到#ifdef __OBJC__ 中
 5     #import <UIKit/UIKit.h>
 6     #import <Foundation/Foundation.h>
 7 
 8 #ifdef DEBUG
 9 #define NJLog(...) NSLog(__VA_ARGS__)
10 #else
11 #define NJLog(...)
12 #endif
13 
14 #endif

说明:…指接收可变参数

补充:

_OBJC_这个宏,在所有的.m和.mm文件中,都默认包含了这个宏,就默认会编译下面那两句

条件编译语句,如果有这个宏,就编译下面的语句。

    #import <UIKit/UIKit.h>

    #import <Foundation/Foundation.h>

如果这个全局的头文件或者宏,只需要在.m或.mm文件中使用,请把该文件或宏写到#ifdef_ODBC_中用。

注意点:建议写在条件编译里面(注意#endif)

infoplist.strings的文件,跟info.plist文件的本地化相关

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。