iOS成长之路基础篇 – (6) 从认识 XCode 项目开始 iOS 开发
iOS 开发的官方IDE就是XCode,所以我们要成为一名合格的iOS developer,就要从认识XCode开始,今天,我将总结学习XCode项目开发的一些内容。
xcode6 以后的变化
XCode 6.0 之后变化比较大。与Xcode 5.0 相比较:
- xcode6 没有
Frameworks
文件夹,自动导入常用到的Framework - xcode6 有一个
LaunchScreen.xib
文件,启动界面xib
文件,但是 xcode5 默认没有。在工程的设置项General
—App Icon and Launch Images
—Launch Screen Files
中可以设置。
在iOS开发中,我们程序的启动界面决定了可见范围,如果不设置启动界面,默认可视范围为3.5inch 的尺寸,即 iPhone 的尺寸。所以在 xcode6 以后一定要设置启动界面。 – Xcode6 中没有一个
.pch
的文件 ,Xcode5有.pch
文件,此文件将延长编译时间。
我们接下来了解一下XCode中一些重要的非编码的配执行文件,这些文件对于iOS项目开发至关重要。
info.plist 文件
key-value 文件
Bundle name — 软件名称/默认$(PRODUCT_NAME)
Bundle identifier — 软件标识符
Bundle versions string,short — 软件版本号,显示在App Store
Bundle version — 编译版本号
程序中获取info.plist中的一些属性
// 获取当前 App 版本号
// 第一种方式
// 获取info.plist文件路径
NSString *path = [[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"];
// 1.解析info.plist
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
// 打印所有
NSLog(@"%@", dict);
// 2.获得版本号
NSString *version = [dict objectForKey:@"CFBundleShortVersionString"];
// 打印
NSLog(@"%@", version);
// 第二种方式
NSString *strVersion = [[NSBundle mainBundle].infoDictionary objectForKey:@"CFBundleShortVersionString"];
// 打印
NSLog(@"%@", strVersion);
.PCH 文件的作用
PrefixHeader
文件的命名和工程名称一致。文件里面的内容被工程中的所有文件共用,也就是将项目的一些公共定义或者import放在此文件。
此文件需要提前编译,首先需要配置。
Build Settings
— ....... - Language
— Precompile Prefix Header
设置为YES
Build Settings
— ....... - Language
— Prefix Header
填写自己的.pch
文件路径 项目名称/项目名称.pch
,如果找不到错误,很可能路径写错了。
由于每一个文件都需要拷贝一份.pch
文件,所以提前编译需要大量时间,延长编译时间。
作用:
- 存放一些公用的宏
- 存放一些公用的头文件
- 自定义一些日志输出格式(NSLog比较消耗资源)
// debug 可以打印日志, release不打印日志
#ifdef DEGUB // 调试阶段
// … 表示宏里面的可变参数,__VA__ARGS__ 表示函数的可变参数
#define TTLog(...) NSLog(__VA__ARGS__)
#else // 发布阶段
#define TTLog(...)
#endif
如果和C/C++进行混合编程,那么
.pch
文件也会在C/C++文件导入,所以需要注意,在.pch
文件需要使用系统宏__OBJC__ 。
// 只能导入到 objc 文件
#ifdef __OBJC__
// 只可以在Objc文件导入的内容
#endif
总结
当然还有一些比较重要的文件,或者文件夹,主要是存储一些资源文件或者xib文件。我将在后面继续更新。