pch 可以用來存儲同享信息,好比裝備屏幕的寬度,高度。版本號等等 公用信息
Xcode 老版本會主動為我們創立pch文件,新版本開端不主動創立了,假如須要應用可以本身手動創立
創立完成後可以在外面界說常量
此處以屏幕尺寸為例
以下
代碼以下:
//獲得屏幕 寬度、高度
#define SCREEN_FRAME ([UIScreen mainScreen].applicationFrame)
#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)
#define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)
然後在法式中應用 可以直接 應用
CGRectMake(0,60,SCREEN_WIDTH, SCREEN_HEIGHT-60)
PCH文件的運用舉例:
在PCH文件中寄存宏就是正常的創立,這裡不舉例了。
在PCH文件中寄存頭文件常常用於分類,好比我們給UIColor增長了一個分類,而且願望在多個文件中應用這個分類,那末便可以在PCH文件中導入此分類的頭文件。
在PCH文件中自界說一些有效的宏,好比取代NSLog:
#define JYLog(...) NSLog(__VA_ARGS__)
我們曉得NSLog消耗機能,在調試階段完成後須要將NSLog都刪除失落,然則跟著文件的增多,NSLog則欠好掌握,每個都去找很糟蹋時光。
此時我們可以應用宏來完成主動開啟/封閉NSLog的功效。
#ifdef DEBUG
// 調試階段
#define JYLog(...) NSLog(__VA_ARGS__)
#else
// 宣布階段
#define JYLog(...)
#endif
當處於調試階段,JYLog的感化相當於NSLog,而在宣布階段則JYLog的感化相當於空。如許用JYLog取代NSLog便可以完成之前我們願望做的。
DEBUG的值會跟著Xcode中的設置轉變而轉變。
Edit Scheme -> Run -> Info -> Build Configuration.
Debug代表調試階段。
Release代表宣布階段。
然則假如如許做能夠有潛伏的風險。後面說過PCH文件的內容會拷貝到每一個文件,所以假如此時我們創立一個.c文件,在這個文件中異樣會拷貝PCH中的內容,假如PCH文件中湧現C說話不克不及辨認的,那末很顯著會失足。
我們願望PCH文件只在Objective-C的規模內有用(OC文件內拷貝PCH文件內容),所以須要再停止斷定:
#ifdef __OBJC__
#ifdef DEBUG
// 調試階段
#define JYLog(...) NSLog(__VA_ARGS__)
#else
// 宣布階段
#define JYLog(...)
#endif
#endif
至此能力包管准確應用。
由於PCH文件的內容會拷貝到每個文件中,即便這個文件並未用到PCH文件的內容。所以在應用PCH文件的時刻要鄭重,這能夠也是Apple不再默許創立它的緣由吧。
【應用Xcode為iOS運用項目創立PCH文件的辦法及運用示例】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!