1.xcode5跟xcode6对比
1>文件前缀
xcode5有前缀,前缀的作用是为了防止文件冲突
xcode6没有前缀,是为了迎合swift语言
2>xcode5有pch文件,xcode6没有pch文件
3>xcode5的info.plist文件是前面要加上项目名,xcode6直接就是info.plist名字
4>xcode5建成项目默认加载.Frameworks:依赖的框架,xcode6已经不用加载
2.info.plist 项目配置文件
1>该文件对工程做一些运行期的配置,非常重要,不能删除
2>项目中其他Plist文件不能带有“Info”这个字眼,不然会被错认为是传说中非常重要的“Info.plist
3> info.plist 项目配置文件存在的重要原因 :保存应用的信息,软件名称等等,相当于身份证。
程序加载首先加载配置文件,读取软件名称等信息。
1.Bundle display name:项目名称
2.Bundle identifier:项目的唯一标识
3.Bundle version:项目版本
4>Info.plist对应xcode的project的图形界面,改图形界面的东西,就会改变 Info.plist。 比如横屏竖屏等
3.pch文件
pch文件:也是一个头文件,能被项目中的其他所有源文件共享和访问。
1>pch作用:
1. 放一些全局的宏
2. 导入一些全局都需要的头文件,一般开发中放工具类的头文件, 或者分类头文件等。
3. 管理日志输出 (自定义log)
自定义log的原因:使用NSLog进行日志输出非常耗性能,一般在发布程序不需要日志输出,只有调试的时候才要,
所以通常在开发中自己自定义一个日志输出取代系统自带的NSLog
2>自定log代码和注意的问题
// 判断有没有定义 __OBJC__ 这个宏 ( 所有的 .m 文件默认都会定义 __OBJC__)
// 在 pch 写的有关 OC 的东西 , 最好放在 #ifdef __OBJC__,Xcode 在每个 OC 文件中都定义了这个宏 , 也就意味着只有 OC 中的文件才拥有这些宏 , 避免项目中有 C 文件的时候报错。
#ifdef __OBJC__
/*
#define Log(...) NSLog(__VA_ARGS__)
... 表示宏里面的可变参数 ( 可接收任何参数 )
__VA_ARGS__: 函数里面的可变参数
使用时和 NSLog 用法完全一样
*/
#ifdef DEBUG // 调试阶段
#define Log(...) NSLog(__VA_ARGS__)
#else // 发布阶段
#define Log(...)
#endif
#endif