1. 程式人生 > >iOS中.pch檔案的使用

iOS中.pch檔案的使用

       以前在寫程式碼的時候在螢幕適配和系統適配的時候都是建立一個頭檔案然後當某個類需要使用的時候#import 進去,



   今天看公司的專案,發現他們使用的是一個.pch檔案,既然兩種方式都可以實現,那公司專案中為什麼要使用.pch檔案呢?原因是當我們的工程專案特別大的時候,我們需要把大量的標頭檔案和巨集定義匯入到每一個類中,這樣就會導致編譯時間過長,系統耗費的資源過大。

    1:Xcode6.0以前的版本會自動為我們建立.pch 檔案,新版本以後需要我們手動建立;

    2: .pch檔案也是一個頭檔案,可以做一些預編譯的操作,比如引入全域性標頭檔案和定義一些常量,可以被專案中的其他所有原始檔共享和訪問;

   3:專案中.pch 檔案的建立:

        

在工程的Targets裡面進行工程設定:Prefix Header, 將 Precompile Prefix Header設定為YES:

在Precompile Prefix Header新增工程檔案目錄


 4:.pch 檔案的作用:

   1:存放一些全域性的巨集(整個專案中都可以使用到的)      

#ifndef PrefixHeader_pch
#define PrefixHeader_pch


#endif /* PrefixHeader_pch */

#define SCREEN_FRAME ([UIScrren mainScreen].applicationFrame)
#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)
#define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)

         2:用來包含一些全部的標頭檔案(整個專案中都可以使用到的標頭檔案)

#import <Availability.h>    
#ifndef __IPHONE_3_0    
#warning "This project uses features only available in iPhone SDK 3.0 and later."    
#endif    
#ifdef __OBJC__    
    #import <UIKit/UIKit.h>    
    #import <Foundation/Foundation.h>
    #import "Header.h"    
#endif  
這裡引入了一些標頭檔案,其實是Xcode的一種編譯機制,我們在編譯一個專案的時候,會有很多常用的原始檔,並且這些程式碼檔案幾乎不被修改,所以Xcode對這些檔案只在早期進行一次編譯,以便我們以後的多次構建中反覆使用,例如這裡的UIKit 和 Foundation,這樣的機制可以加快我們每次構建專案的速度。

    3:能自動開啟或者關閉日誌輸出功能

   平時在開發應用的時候經常會遇到NSLog來除錯程式,隨著專案越來越大,這些用於除錯的日誌輸出就會變得很難管理。在開發正式版本的時候要遮蔽掉所有後臺輸出,因為這些輸出也耗費資源,所以我們得一行一行找到NSLog,然後將其註釋掉。在專案比較小的時候還行,但是如果專案規模特別大,就會變得很難控制,解決的辦法就是定義這樣一點預處理命令:

#ifndef CLog_h
#define CLog_h
//程式段
#ifdef DEBUG
#define CLog(format, ...) NSLog(format, ## __VA_ARGS__)
#else
#define CLog(format, ...)
#endif  

#endif

使用的方法就是在.pch檔案中匯入CLog.h就可以了,這樣就實現了任何一個原始檔中使用CLog巨集輸出體質的時候,預處理命令會自動判斷當前的編譯配置,如果是DEBUG 就會輸出日誌,否則不會輸出 

#import <Availability.h>   
#ifndef __IPHONE_3_0    
#warning "This project uses features only available in iPhone SDK 3.0 and later."    
#endif    
#ifdef __OBJC__    
    #import <UIKit/UIKit.h>    
    #import <Foundation/Foundation.h>    
    #import "CLog.h"    
#endif  


相關推薦

iOS.pch檔案的使用

       以前在寫程式碼的時候在螢幕適配和系統適配的時候都是建立一個頭檔案然後當某個類需要使用的時候#import 進去,    今天看公司的專案,發現他們使用的是一個.pch檔案,既然兩種方式都可以實現,那公司專案中為什麼要使用.pch檔案呢?原因是當我們的工程專

iOSpch檔案的基本使用

在iOS開發中經常需要自己巨集定義一個變數,並且在多個資料夾中使用,如果每個檔案中都巨集定義的話會特別麻煩,這裡就用到了pch檔案 pch中可以巨集定義一些內容,特別是經常在不同程式碼塊中使用的內容,在pch檔案中巨集定義之後,在整個專案中都可以使用 過程如下: (1),

iOSpch檔案和info.plist檔案的作用

Xcode5與Xcode6以後的專案結構如下圖: 其中在Xcode6後已不再預設生成pch檔案,下面介紹如何自己建立該檔案。 1.選中專案檔案,右擊滑鼠選中新建檔案: 2.在Other項中,選擇新建pch檔案 3.新建後需在工程中做相關配置,點選工程檔案來到配置

iOS.pch文件怎樣使用

water csdn 例如 popu p s 老版本 tex content data- pch 能夠用來存儲共享信息,比方設備屏幕的寬度,高度。版本等等 公用信息 Xcode 老版本號會自己主動為我們創建pch文件,新版本號開始不自己主動創建了。假設須要使用能夠自己手

iOS 配置PCH檔案

  其實獲取相對路徑也是有技巧的。如果你對Xcode的工程目錄比較熟的話,肯定會注意到,每次建立一個專案以後,專案資料夾下面一定會有一個跟它同名的子資料夾,而從這個子資料夾往後,直到PCH檔案所在的位置,它就是PCH檔案在專案中的相對路徑。以我們這個PCH檔案為例,你有了全路徑以後,從ESMyLottery.

iOSplist檔案操作

1、先建立一個plist檔案在專案中: new file - Resource - Property plist - Next(下一步) - 更改名稱(chatUserName)- 確認 這樣就建立好了一個plist檔案 2、獲取plist檔案路徑: NSString

Xcode8如何在專案建立和使用自己的prefix.pch檔案

標籤: prefix.pch究竟是什麼?翻閱了一些文章,其實我們可以把它稱之為“precompiled header”,從字面上翻譯就是預編譯標頭檔案,但我們一般叫它為預編譯檔案! 前言: prefix.pch的出現應該追溯到Xcode6以前的版本,在我們每建立一個新的專案工程的時候,在工程

iOS 把資料庫檔案打包到mainbundle,查詢不到路徑的解決辦法;以及在刪除bundle檔案的可行性

在開發中有時我們需要把資料庫檔案打包到我們的專案中,一般我們都是在外部用工具生成資料庫檔案,然後拉入專案中,但是我們在程式中查詢改檔案時,返回的路徑總是nil 解決辦法: 原因我們拉入其他資原始檔(比如:圖片、程式碼檔案等)Xcode都會自動新增到target 的 "Bui

iOS開發技巧:PCH檔案的創建於使用

前言 PCH檔案,又稱預編譯標頭檔案(一般副檔名為.pch),是把一個工程中較穩定的程式碼預先編譯好放在一個檔案(.pch)裡,它們在整個工程中是較為穩定的,即在工程開發過程中不會經常被修改的程式碼。為什麼需要預編譯標頭檔案?簡單點就是提高編譯速度,一處編譯,

完美解決ios開發兩個.framework檔案.o檔案衝突的問題(linker command failed with exit code 1 (use -v to see invocation)

專案中使用到XYPrinter.framework和Printer.framework中的兩個.o檔案有衝突, 查了資料通過拆分XYPrinter.framework刪除其中衝突的.o檔案,然後重新生成靜態庫, 解決了問題. 步驟如下: 新建一個資料夾resolveConfli

IOS的local檔案操作指南

IOS提供了對檔案操作的3大類 1.NSFileManager : 對檔案進行基本的操作,如讀寫,更改目錄,更改檔案屬性等      獲取NSFIleManager      NSFIleManager *nsMan;      nsMan = [NSFil

iOS info.plist檔案的完整研究

我們建立一個工程後,會在Supporting files下面看到一個"工程名-Info.plist"的檔案,這個是對工程做一些執行期配置的檔案,很重要,不能刪除。 如果你在網上下載的工程中的這個檔名只是Info.plist,那麼恭喜你,這個工程太老了,是用包含SDK2.

iOS 不建議使用PCH檔案-----使用PCH檔案的壞處

在Xcode6之前,建立一個新工程xcode會在Supporting files資料夾下面自動建立一個“工程名-Prefix.pch”檔案,也是一個頭檔案,pch標頭檔案的內容能被專案中的其他所有原始檔共享和訪問。是一個預編譯檔案。 首先說一下pch的作用: 1.存放一些全

IOS iPhone 開發檔案讀寫及資料儲存(一)

 資料的儲存無疑是軟體開發中的重要課題。本文給初學者介紹下iphone開發中常見的檔案讀寫,當然,我也是初學者~ iOS的檔案儲存採用的是“沙箱機制”,也就是應用程式只能訪問自己的檔案目錄,每個應用程式的資料是獨立的,就像一個一個的沙箱一樣。這種管理方法比windows和原

unity檔案儲存路徑與各平臺(Android,iOS)的關係

主要是這個問題困擾我了一陣子,所以特寫寫。。。 unity中的的各種儲存方法的對應關係(直接上截圖吧) 重點說的是Application.presistentDataPath方法,因為這個問題在Android中困擾我很久, 先說說iOS端,很簡單,就是儲存到iOS的沙

小胖說swift03--------swift開發pch檔案

下面就是swift中代替OC的pch檔案的.一切的中心就是那個 Swift File 檔案,說白了,他就是swift環境下個pch檔案,按照步驟,點選Next完成建立! 如下,就是你所期待已久的s

swift類似PCH檔案的東西

在OC中有一個共享很多巨集定義的檔案那就是PCH然後在SWIFT中沒有巨集這個東西,那麼如何做到有PCH的效果呢???其實很簡單就是建立一個檔案類名隨便取程式碼如下,不需要配置任何東西就能夠實現

iOS 檢視ipa包檔案格式以及圖片

      今天很好奇,為什麼現在提交appStore直接點一個submit按鈕就一切OK了呢,仔細研究一下ipa裡邊到底有什麼。export了一個ipa包,把字尾改為zip,雙擊解壓,解壓之後的資料夾如下圖:       由此我們可以看到解壓後Payload目錄下,是一個

iOS手動匯出dSYM檔案,用於解析崩潰日誌

符號表檔案.dSYM實際上是從Mach-O檔案中抽取除錯資訊而得到的檔案目錄,實際用於儲存除錯資訊的檔案是DWARF,其出身可以從這篇文章瞭解。 這個是我T9專案匯出的檔案路徑 /Appl

iOS在.pch加入__OBJC__的作用是什麼?以及NSLog的巨集定義

大家在寫程式的時候都會為了避免程式碼麻煩,會在專案中新增.pch檔案,那麼檔案中的#ifdef __OBJC__  有什麼作用呢,這句話的意思就是保證在#ifdef中的巨集定義只會在OC的程式碼中被引用,否則,一旦引入C/C++的程式碼或者框架,就會出錯! 還有就是很多同學