1、 項目中的常見文件 ** XxxxTest文件夾用來作單元測試。 ** Products目錄。 * 在Mac程序下,生產的可執行文件app會存放到該目錄下。 * iOS程序時ipa。這個目錄對於iOS程序來講意義不大。 1. info.plist(全局配置文件, 很是重要, 不能刪除 ): * 在xcode5 中是"項目名稱-Info.plist"表示項目的全局配置文件,很是重要。在舊版本xcode中(和xcode6.1),該文件名稱就叫Info.plist。 ** 注意:本身建立的plist文件中不要包含Info關鍵字。 * Info.plist中的一些配置項: 1> Bundle display name(在xcode6.1中叫作"Bundle name"), 表示軟件安裝到手機上後,顯示的名稱。 ** 當修改了該名稱後,爲了保證有效, 點擊Product -> Clean, 同時將軟件從模擬器中卸載掉,而後再從新運行。 2> Bundle identifier, app的惟一標識。 3> Bundle version, 每次發佈軟件的版本號。每次向AppStore上傳的同一個軟件, 新的版本號必須大於舊的, 不然沒法上傳。 4> Main storyboard file base name, 對應的就是選中"項目" -> "General" -> "Deployment Info" -> "Main Interface" 中的設置。 5> Supported interface orientations, 標識設備所支持的方向。對應的選中"項目" -> "General" -> "Deployment Info" -> "Device Orientation"。iPhone只支持三種方向, 不支持上下旋轉(iPad支持)。Portrait(豎屏)、Landscape Left(橫屏向左)、Landscape Right(橫屏向右)。 6> Info.plist就是一個xml文件, 用記事本打開看一下。
2>pch文件xcode
* 遇到的問題: 1> 整個項目中不少地方都在使用某個類的頭文件。 2> 整個項目中不少地方都在使用同一個"宏" 3> 在項目中不少地方用到了NSLog()函數, 想一會兒全都清除掉。 * 解決上面的問題, 能夠經過使用PCH文件(Prefix Header File)。 * pch文件就是一個頭文件(相似於*.h文件)。 ** 注意: PCH文件的特色, 項目中的全部其餘代碼文件無需顯示導入該PCH文件, 默認就均可以訪問(其餘文件無需手動#import該文件)。 /** 參考代碼: // 假設在整個項目中有多個地方在使用Person類, 那麼能夠在每一個使用到Person類的地方都#import "Person.h", 或者把#import "Person.h"放到pch文件中。 */ * 主要做用: 1> 能夠放一些公用的宏定義。 2> 把公共的Model類的#import導入寫到pch文件中。 3> 自定義NSLog()。例如: #define SteveZLog(...) NSLog(__VA_ARGS__) ** 遇到的問題: 在項目中不少地方用到了NSLog()函數, 想一會兒全都清除掉。
代碼:app
#ifdef DEBUG #define SteveZLog(...) NSLog(__VA_ARGS__) #else #define SteveZLog(...) #endif
補充, 程序開發階段分爲: 1. 調試階段, 寫代碼、調錯誤,須要使用NSLog()。同時在調試階段系統會自定義一個叫作DEBUG的宏。 2. 發佈階段, 寫好的代碼生成ipa等壓縮文件, 上傳到AppStore, 安裝到用戶設備上, 不須要NSLog()。 同時系同會自動刪除叫作DEBUG的宏。 3. 綜上所述, 咱們能夠以下自定義一個NSLog(): #ifdef DEBUG #define SteveZLog(...) NSLog(__VA_ARGS__) #else #define SteveZLog(...) #endif
全部與OC相關的宏定義都要寫在: #ifdef __OBJC__ #endif 裏面, 由於寫在這個if中的全部內容只有OC代碼纔可使用, 當在項目中新建了一個.c文件是不可使用的(不使用就不會報錯), 不然若是寫在了外面,新建一個.c的程序也能使用,就報錯了。好比C語言中沒有#import, 只有#include <xx.h> // 判斷若是是OC文件才引入這些宏, 若是是普通C語言文件則不引入。不然當在項目中添加C語言文件時報錯。 #ifdef __OBJC__ #define ABC 10 #import "Person.h" #ifdef DEBUG #define SteveZLog(...) NSLog(__VA_ARGS__) #else #define SteveZLog(...) #endif #endif */
特別注意:ide
* 在xcode6.1中, 默認沒有建立pch文件。 ** 須要本身新建一個 ** 建立方式: 選擇"Supporting Files" -> 右鍵 -> "New File" -> "Other" -> "PCH File" -> "PrefixHeader.pch"。 * 在該文件中定義以下宏: ** #define ABC 10 * 選中項目 -> Build Setting -> All -> 搜索"prefix head" -> 修改Prefix Header的內容爲: ** $(SRCROOT)/$(PRODUCT_NAME)/PrefixHeader.pch ** 或者 ** $(SRCROOT)/對應的文件夾名/PrefixHeader.pch ** 參考鏈接: http://www.cnblogs.com/YouXianMing/p/3989155.h