啟動界面的設置
啟動界面由Xcode5的圖片文件到Xcode6的xib文件到Xcode7的storyboard文件盼产。
應用的啟動界面是必須要設置的锅纺,如果不設置,在屏幕的上下就會出現(xiàn)黑色≡ɡ裕可視范圍跟啟動界面有關,如果沒有設置啟動文件床嫌,默認可視范圍就是iPhone4和4s的尺寸跨释,也就是為什么會出現(xiàn)黑色的原因。如果設置了啟動文件厌处,那么默認就是當前模擬器/真機的尺寸鳖谈。
啟動界面在LaunchScreen.storyboard中設置,在這個文件中需要一個UIViewController類型的控制器并且設置為根控制器阔涉。
當應用啟動界面要顯示的時候缆娃,會把LaunchScreen.storyboard中的控制器截屏
生成圖片來作為APP的啟動界面。
PCH文件
之前版本的?Xcode默認會創(chuàng)建pch文件瑰排,Xcode6以后則不會自動創(chuàng)建龄恋,需要我們自己創(chuàng)建。
- PCH文件的創(chuàng)建:
File -> New -> File... -> other -> PCH文件
- PCH文件的作用:Xcode會提前編譯PCH文件凶伙,并且在每個文件中都拷貝PCH文件的內(nèi)容郭毕。利用這一特點,我們可以在PCH文件里
存放一些公用的宏
函荣,存放一些頭文件
显押,以及自定義一些有用的宏(后面舉例)
。
PCH文件創(chuàng)建之后傻挂,我們需要位置PCH文件才能讓它發(fā)揮作用乘碑。
-
如何配置: Build Settings -> 找到Apple LLVM…(或者搜索prefix) -> 將
Precompile Prefix Header
設置為YES
。接下來需要在
Prefix Header
中寫入PCH文件的路徑金拒,注意默認PCH文件這個路徑與項目文件處于同一層級兽肤,也就是說Xcode從項目文件的目錄開始查找PCH文件,所以在這里只需要寫項目名稱/文件名稱.pch
而不用寫全路徑绪抛。 -
PCH文件的應用舉例:
在PCH文件中存放宏就是正常的創(chuàng)建资铡,這里不舉例了。
在PCH文件中存放頭文件經(jīng)常用于
分類
幢码,比如我們給UIColor增加了一個分類笤休,并且希望在多個文件中使用這個分類,那么就可以在PCH文件中導入此分類的頭文件症副。-
在PCH文件中自定義一些有用的宏店雅,比如代替NSLog:
#define JYLog(...) NSLog(__VA_ARGS__)
我們知道NSLog耗費性能政基,在調(diào)試階段完成后需要將NSLog都刪除掉,但是隨著文件的增多闹啦,NSLog則不好控制沮明,每一個都去找很浪費時間。
此時我們可以利用宏來完成自動開啟/關閉NSLog的功能窍奋。
#ifdef DEBUG // 調(diào)試階段 #define JYLog(...) NSLog(__VA_ARGS__) #else // 發(fā)布階段 #define JYLog(...) #endif
當處于調(diào)試階段荐健,JYLog的作用相當于NSLog,而在發(fā)布階段則JYLog的作用相當于空费变。這樣用JYLog代替NSLog就可以完成之前我們希望做的摧扇。
DEBUG的值會隨著Xcode中的設置改變而改變圣贸。
Edit Scheme -> Run -> Info -> Build Configuration.
Debug代表調(diào)試階段挚歧。
Release代表發(fā)布階段。
但是如果這樣做可能有潛在的危險吁峻。前面說過PCH文件的內(nèi)容會拷貝到每個文件滑负,所以如果此時我們創(chuàng)建一個.c文件,在這個文件中同樣會拷貝PCH中的內(nèi)容用含,如果PCH文件中出現(xiàn)C語言不能識別的矮慕,那么很明顯會出錯。
我們希望PCH文件只在Objective-C的范圍內(nèi)有效(OC文件內(nèi)拷貝PCH文件內(nèi)容)啄骇,所以需要再進行判斷:
#ifdef __OBJC__ #ifdef DEBUG // 調(diào)試階段 #define JYLog(...) NSLog(__VA_ARGS__) #else // 發(fā)布階段 #define JYLog(...) #endif #endif
至此才能保證正確使用痴鳄。
因為PCH文件的內(nèi)容會拷貝到每一個文件中,即使這個文件并未用到PCH文件的內(nèi)容缸夹。所以在使用PCH文件的時候要慎重痪寻,這可能也是Apple不再默認創(chuàng)建它的原因吧。