1. Texts文件夾:單元測試
2. Frameworks:依賴的框架
3. Info.plist:項目配置文件
為什么要搞個配置文件? 需要保存應(yīng)用的信息,軟件名稱等等改执,相當(dāng)于身份證。程序加載首先加載配置文件毡泻,讀取軟件名稱等信息访锻。
- Bundle display name:項目名稱
- Bundle identifier:項目的唯一標(biāo)識
- Bundle version:項目版本
4. Info.plist對應(yīng)xcode的project的圖形界面垢揩,改圖形界面的東西话侄,就會改變Info.plist亏推。比如方向等
5. pch文件:也是一個頭文件,能被項目中的其他所有源文件共享和訪問年堆。
為什么要搞個pch文件吞杭?因為提需求,如果一個宏嘀韧,很多文件都需要用到篇亭,怎么解決缠捌,搞個公用的頭文件锄贷,同時導(dǎo)入這個頭文件译蒂。
5.1 pch作用:
- 放一些全局的宏
- 導(dǎo)入一些全局都需要的頭文件,一般開發(fā)中放工具類的頭文件,或者分類頭文件等谊却。
- 管理日志輸出柔昼。為什么要管理日志輸出,因為日志輸出非常耗性能炎辨,一般發(fā)布的時候不需要日志輸出捕透,只有調(diào)試的時候才需要。
5.2 通常開發(fā)中弄一個自己的日志輸出碴萧,不要系統(tǒng)自帶的NSLog
// …表示能接收任何參數(shù)
// __VA_ARGS__ 表示左邊...的參數(shù)會替代到右邊NSLog中
#define CZLog(...) NSLog(__VA_ARGS__)
如果不想打印了乙嘀,直接注釋后邊NSLog
#define CZLog(...) // NSLog(__VA_ARGS__)
還可以通過一個宏進行條件編譯,在調(diào)試階段破喻, xcode會自動定義一個DEBUG宏虎谢,利用這個宏,就能進行條件編譯.
#ifdef DEBUG // Debug階段
#define DBLog(...) NSLog( __VA_ARGS__)
#else // Release階段
#define DBLog(...)
#endif
5.3 在pch寫的有關(guān)OC的東西曹质,最好放在 #ifdef __OBJC__婴噩,Xcode在每個OC文件中都定義了這個宏,也就意味著只有OC中的文件才擁有這些宏羽德,避免項目中有C文件的時候几莽,報錯。
5.4 如果在c文件中宅静,使用#import章蚣,就會報錯,因為c文件不能識別#import姨夹,只有OC文件才能識別究驴。在pch中的東西能被項目中的所有文件共享,c文件共享#import就報錯匀伏。
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif
#import "CZTool.h" // 不要寫在外面