1、 项目中的常见文件 ** 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文件xcode
* 遇到的问题: 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()函数, 想一会儿全都清除掉。
代码:app
#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 */
特别注意:ide
* 在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