你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 使用Xcode為iOS應用項目創建PCH文件的方法及應用示例

使用Xcode為iOS應用項目創建PCH文件的方法及應用示例

編輯:IOS開發綜合

pch 可以用來存儲共享信息,比如設備屏幕的寬度,高度。版本號等等 公用信息
Xcode 老版本會自動為我們創建pch文件,新版本開始不自動創建了,如果需要使用可以自己手動創建

201632190845019.jpg (730×430)

創建完成後可以在裡面定義常量
此處以屏幕尺寸為例
如下

201632190921105.png (841×304)

代碼如下:
復制代碼 代碼如下:
//獲取屏幕 寬度、高度
#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)

然後在程序中使用 可以直接 使用
復制代碼 代碼如下:
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不再默認創建它的原因吧。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved