最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用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文件中導入此分類的頭文件。
在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)文章

  • iOS自定義UITabBar中間按鈕

    iOS自定義UITabBar中間按鈕

    這篇文章主要為大家詳細介紹了iOS自定義UITabBar中間按鈕,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • iOS搭建簡易購物車頁面

    iOS搭建簡易購物車頁面

    這篇文章主要為大家詳細介紹了iOS搭建簡易購物車頁面,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • iOS 讀取URL圖片并存儲到本地的實例

    iOS 讀取URL圖片并存儲到本地的實例

    下面小編就為大家?guī)硪黄猧OS 讀取URL圖片并存儲到本地的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • 深入講解iOS開發(fā)中的UIViewController

    深入講解iOS開發(fā)中的UIViewController

    這篇文章主要介紹了iOS開發(fā)中的UIViewController,其中以UIViewController作為著重講解,需要的朋友可以參考下
    2015-09-09
  • iOS開發(fā)之枚舉用法小結(jié)

    iOS開發(fā)之枚舉用法小結(jié)

    大家都知道枚舉是C語言中的一種基本數(shù)據(jù)類型,是一個"被命名的整型常量"的集合,它不參與內(nèi)存的占用和釋放,我們在開發(fā)中使用枚舉的目的只有一個,那就是為了增加代碼的可讀性。下面就來來看看在iOS中枚舉的用法,有需要的朋友們可以看看。
    2016-09-09
  • iOS中NSNumberFormatter的介紹與用法

    iOS中NSNumberFormatter的介紹與用法

    NSNumberFormatter 應(yīng)該可以滿足你對數(shù)據(jù)形式的一般需求,值得了解一下,下面這篇文章主要給大家介紹了關(guān)于iOS中NSNumberFormatter的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-09-09
  • iOS8調(diào)用相機報警告Snapshotting a view的解決方法

    iOS8調(diào)用相機報警告Snapshotting a view的解決方法

    這篇文章主要介紹了iOS8調(diào)用相機報警告Snapshotting a view……的解決方法 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • iOS中長條藍色按鈕(button)實現(xiàn)代碼

    iOS中長條藍色按鈕(button)實現(xiàn)代碼

    本文通過實例代碼給大家介紹了iOS中長條藍色按鈕(button)實現(xiàn)方法,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-08-08
  • 解決iOS UITextField 編輯時文本偏移問題

    解決iOS UITextField 編輯時文本偏移問題

    這篇文章主要介紹了解決iOS UITextField 編輯時文本偏移問題,需要的朋友可以參考下
    2017-05-05
  • 解決ios手機中input輸入框光標過長的問題

    解決ios手機中input輸入框光標過長的問題

    在項目中做移動端頁面,發(fā)現(xiàn)IOS 的光標大小很大,和安卓的完全不一樣,怎么來調(diào)整大小呢?下面小編給大家?guī)砹薸os手機中input輸入框光標過長問題的解決方法,一起看看吧
    2018-08-08

最新評論

屯门区| 保亭| 乌鲁木齐县| 平泉县| 碌曲县| 九寨沟县| 嵊州市| 广州市| 清远市| 渑池县| 扎兰屯市| 玛曲县| 诸城市| 建水县| 聊城市| 锦州市| 罗甸县| 沛县| 长垣县| 芦山县| 宁南县| 兴仁县| 苏尼特左旗| 隆林| 寿光市| 莱芜市| 淮安市| 广西| 临安市| 阳高县| 八宿县| 临沂市| 调兵山市| 南康市| 武夷山市| 岳普湖县| 本溪市| 麻江县| 绥滨县| 庄浪县| 南乐县|