由于我們現(xiàn)在寫的內(nèi)容,代碼量不是很大, 而且, 我也算是比較懶, 所以,圖片用的還是以前寫的時(shí)候OC的老圖片
1.info.plist文件和PCH文件
現(xiàn)在我們的info.plist文件還可以找的到,
只是我們的PCH文件許我我手動(dòng)添加
info.plist 我們的這個(gè)info.plist文件是以我們文件名-Info.plist文件命名的
注意: 上面的截圖中有一處錯(cuò)誤:
就是我們的程序名稱是我們的Bundle name 而不是Bundle display name
2.PCH文件
2.1pch文件創(chuàng)建
首先, 我們先在我們程序中導(dǎo)入我們的PCH文件, 然后我們?cè)俳榻B它的功能:
當(dāng)然他的命名和我們info.plist文件命名類似
也是一總的工程文件名開頭現(xiàn)在說(shuō)一說(shuō)她有哪些功能
試想一下, 當(dāng)我們?cè)谧龃蟮墓こ痰臅r(shí)候,
我們可能多次用到:UIScreen.mainScreen().bounds.size.height
對(duì)吧, 我們一般會(huì)怎么做, 就是定義一個(gè)宏嘛,
但是如果我們有很多的文件都需要用這個(gè)
我們是不是在每一個(gè)文件里面都定義一個(gè)宏, 這個(gè)時(shí)候 , 我們就可以用到pch文件了
pch文件的第一個(gè)功能就是他會(huì)將自己文件里面的所有的代碼在編譯前, 放到每一個(gè)文件中:
#define screenH UIScreen.mainScreen().bounds.size.height
#define screenW UIScreen.mainScreen().bounds.size.width
我們?cè)趐ch文件中寫上這么一句代碼, 就代表著, 我們?cè)谒械奈募卸紝懥诉@么一句代碼
2.2 配置PCH文件
用他的另一個(gè)好處就是我們可以將一些公用文件文件的頭文件寫到 我們的pch文件里面
但是: 就如上面所說(shuō)的, 我們要要求系統(tǒng)提前編譯我們的pch文件
所以我們就需要這么做
2.2.1第一步: 找到和下圖一樣的界面(紅框框是幫助尋找的)
2.2.2第二步:配置路徑
2.2.3填寫路徑小技巧
從藍(lán)色工程文件開始往下數(shù),看總共有幾層.有幾層在路徑里就配置幾層
點(diǎn)擊我們的pch文件:
找到兩層就好了
下面中共有兩層
2.3 自定義Log
我們?cè)谡{(diào)試代碼的時(shí)候, 我們會(huì)有許多的調(diào)試代碼:
就是很多的打印, 在我們的程序上傳之前,我們需要一個(gè)個(gè)找然后注釋掉, 這樣很麻煩,
只要我們?cè)趐ch文件中寫上這么一句:
#define GJLog(…) NSLog(__VA_ARGS__)
以后我們?cè)趯懘a調(diào)試的時(shí)候, 只需要在任意地方寫上GJLog(…);
就可以完成打如果想注釋掉打印的代碼只需要這樣做;
#define GJLog(…) // NSLog(__VA_ARGS__)
這樣就可以完成以前很麻煩的事了
還有就是在我們的程序中很有可能混入其他語(yǔ)言寫的代碼
那么這樣我們的pch還是繼續(xù)在所有的文件中導(dǎo)入的話, 會(huì)報(bào)錯(cuò)的,
因?yàn)樵诒阋藭r(shí)會(huì)把PCH文件當(dāng)中所有的內(nèi)容給導(dǎo)入工程的所有文件當(dāng)中.
所以, 我們可以利用這種寫法:
在OC文件內(nèi)容會(huì)自動(dòng)隱式定義一__OBJC__的宏
判斷只有當(dāng)是OC文件時(shí),才須要導(dǎo)入內(nèi)容.
#ifdef __OBJC__
#define screenH [UIScreen mainScreen].bounds.size.height
#define screenW [UIScreen mainScreen].bounds.size.width
#endif