亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用Xcode為iOS應(yīng)用項(xiàng)目創(chuàng)建PCH文件的方法及應(yīng)用示例

 更新時(shí)間:2016年03月21日 09:13:24   作者:ForeverYoung21  
這篇文章主要介紹了使用Xcode為iOS應(yīng)用項(xiàng)目創(chuàng)建PCH文件的方法及應(yīng)用示例,PCH文件可以保留應(yīng)用的很多的基礎(chǔ)設(shè)置信息以供復(fù)用,需要的朋友可以參考下

pch 可以用來(lái)存儲(chǔ)共享信息,比如設(shè)備屏幕的寬度,高度。版本號(hào)等等 公用信息
Xcode 老版本會(huì)自動(dòng)為我們創(chuàng)建pch文件,新版本開(kāi)始不自動(dòng)創(chuàng)建了,如果需要使用可以自己手動(dòng)創(chuàng)建

201632190845019.jpg (730×430)

創(chuàng)建完成后可以在里面定義常量
此處以屏幕尺寸為例
如下

201632190921105.png (841×304)

代碼如下:

復(fù)制代碼 代碼如下:

//獲取屏幕 寬度、高度
#define SCREEN_FRAME ([UIScreen mainScreen].applicationFrame)
#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)
#define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)

201632190942389.jpg (1139×659)

然后在程序中使用 可以直接 使用

復(fù)制代碼 代碼如下:

CGRectMake(0,60,SCREEN_WIDTH, SCREEN_HEIGHT-60)

PCH文件的應(yīng)用舉例:
在PCH文件中存放宏就是正常的創(chuàng)建,這里不舉例了。
在PCH文件中存放頭文件經(jīng)常用于分類(lèi),比如我們給UIColor增加了一個(gè)分類(lèi),并且希望在多個(gè)文件中使用這個(gè)分類(lèi),那么就可以在PCH文件中導(dǎo)入此分類(lèi)的頭文件。
在PCH文件中自定義一些有用的宏,比如代替NSLog:
#define JYLog(...)  NSLog(__VA_ARGS__)
我們知道NSLog耗費(fèi)性能,在調(diào)試階段完成后需要將NSLog都刪除掉,但是隨著文件的增多,NSLog則不好控制,每一個(gè)都去找很浪費(fèi)時(shí)間。
此時(shí)我們可以利用宏來(lái)完成自動(dòng)開(kāi)啟/關(guān)閉NSLog的功能。
復(fù)制代碼 代碼如下:

#ifdef DEBUG

// 調(diào)試階段
#define JYLog(...)  NSLog(__VA_ARGS__)

#else

// 發(fā)布階段
#define JYLog(...)

#endif


當(dāng)處于調(diào)試階段,JYLog的作用相當(dāng)于NSLog,而在發(fā)布階段則JYLog的作用相當(dāng)于空。這樣用JYLog代替NSLog就可以完成之前我們希望做的。
DEBUG的值會(huì)隨著Xcode中的設(shè)置改變而改變。
Edit Scheme -> Run -> Info -> Build Configuration.
Debug代表調(diào)試階段。
Release代表發(fā)布階段。
但是如果這樣做可能有潛在的危險(xiǎn)。前面說(shuō)過(guò)PCH文件的內(nèi)容會(huì)拷貝到每個(gè)文件,所以如果此時(shí)我們創(chuàng)建一個(gè).c文件,在這個(gè)文件中同樣會(huì)拷貝PCH中的內(nèi)容,如果PCH文件中出現(xiàn)C語(yǔ)言不能識(shí)別的,那么很明顯會(huì)出錯(cuò)。
我們希望PCH文件只在Objective-C的范圍內(nèi)有效(OC文件內(nèi)拷貝PCH文件內(nèi)容),所以需要再進(jìn)行判斷:
復(fù)制代碼 代碼如下:

#ifdef __OBJC__

#ifdef DEBUG

// 調(diào)試階段
#define JYLog(...)  NSLog(__VA_ARGS__)

#else

// 發(fā)布階段
#define JYLog(...)

#endif

#endif


至此才能保證正確使用。
因?yàn)镻CH文件的內(nèi)容會(huì)拷貝到每一個(gè)文件中,即使這個(gè)文件并未用到PCH文件的內(nèi)容。所以在使用PCH文件的時(shí)候要慎重,這可能也是Apple不再默認(rèn)創(chuàng)建它的原因吧。

相關(guān)文章

最新評(píng)論