欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

pch 可以用來存儲共享信息,比如設(shè)備屏幕的寬度,高度。版本號等等 公用信息
Xcode 老版本會自動為我們創(chuàng)建pch文件,新版本開始不自動創(chuà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)常用于分類,比如我們給UIColor增加了一個分類,并且希望在多個文件中使用這個分類,那么就可以在PCH文件中導(dǎo)入此分類的頭文件。
在PCH文件中自定義一些有用的宏,比如代替NSLog:
#define JYLog(...)  NSLog(__VA_ARGS__)
我們知道NSLog耗費性能,在調(diào)試階段完成后需要將NSLog都刪除掉,但是隨著文件的增多,NSLog則不好控制,每一個都去找很浪費時間。
此時我們可以利用宏來完成自動開啟/關(guān)閉NSLog的功能。
復(fù)制代碼 代碼如下:

#ifdef DEBUG

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

#else

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

#endif


當處于調(diào)試階段,JYLog的作用相當于NSLog,而在發(fā)布階段則JYLog的作用相當于空。這樣用JYLog代替NSLog就可以完成之前我們希望做的。
DEBUG的值會隨著Xcode中的設(shè)置改變而改變。
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)容),所以需要再進行判斷:
復(fù)制代碼 代碼如下:

#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)建它的原因吧。

相關(guān)文章

  • 百度地圖PC端判斷用戶是否在配送范圍內(nèi)

    百度地圖PC端判斷用戶是否在配送范圍內(nèi)

    在pc端設(shè)置商家的配送范圍,用戶在下單時,根據(jù)用戶設(shè)置的配送地點判斷是否在可配送范圍內(nèi),并給用戶相應(yīng)的提示,下面通過本文給大家分享具有實現(xiàn)代碼,感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • iOS11 WKWebView內(nèi)容過濾規(guī)則詳解

    iOS11 WKWebView內(nèi)容過濾規(guī)則詳解

    本篇文章主要介紹了iOS11 WKWebView內(nèi)容過濾規(guī)則詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • iOS中設(shè)置清除緩存功能的實現(xiàn)方法

    iOS中設(shè)置清除緩存功能的實現(xiàn)方法

    清除緩存基本上都是在設(shè)置界面的某一個Cell,于是我們可以把清除緩存封裝在某一個自定義Cell中,現(xiàn)在位大家介紹一種最基礎(chǔ)的清除緩存的方法,感興趣的朋友一起看看吧
    2017-07-07
  • iOS UICollectionView實現(xiàn)卡片效果

    iOS UICollectionView實現(xiàn)卡片效果

    這篇文章主要為大家詳細介紹了iOS UICollectionView實現(xiàn)卡片效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • IOS實現(xiàn)簡單的進度條功能

    IOS實現(xiàn)簡單的進度條功能

    這篇文章主要介紹了IOS實現(xiàn)簡單的進度條功能的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • IOS 百度糯米客戶端登錄BUG

    IOS 百度糯米客戶端登錄BUG

    這篇文章主要介紹了IOS 百度糯米客戶端登錄BUG,問題分析及解決方案,本文介紹的非常詳細,具有參考價值,特此分享供大家學(xué)習(xí)
    2016-01-01
  • iOS開發(fā)中使用UILabel設(shè)置字體的相關(guān)技巧小結(jié)

    iOS開發(fā)中使用UILabel設(shè)置字體的相關(guān)技巧小結(jié)

    這篇文章主要介紹了iOS開發(fā)中UILabel設(shè)置字體的相關(guān)技巧小結(jié),代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2016-01-01
  • iOS自動生成表格效果的實現(xiàn)代碼

    iOS自動生成表格效果的實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了iOS自動生成表格效果的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • iOS實現(xiàn)UIScrollView的無限輪播功能(原理)詳解

    iOS實現(xiàn)UIScrollView的無限輪播功能(原理)詳解

    在現(xiàn)在的一些App中常常見到圖片輪播器,一般用于展示廣告、新聞等數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于iOS實現(xiàn)UIScrollView的無限輪播功能(原理)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-09-09
  • IOS URL中文亂碼問題解決方案

    IOS URL中文亂碼問題解決方案

    這篇文章主要介紹了IOS 解決URL中文亂碼問題解決方案的相關(guān)資料,需要的朋友可以參考下
    2016-10-10

最新評論