1.項(xiàng)目中的常見文件
1.XxxxTest文件夾用來做單元測試鸵赖。
2.Products目錄
- 在Mac程序下,生產(chǎn)的可執(zhí)行文件app會(huì)存放到該目錄下十嘿。該可執(zhí)行文件未加密,可使用class-dump提取出所有頭文件
- iOS程序產(chǎn)生的是ipa文件奥喻。這個(gè)目錄對(duì)于iOS程序來說意義不大婿牍。
- info.plist(全局配置文件, 非常重要, 不能刪除 ):
- pch文件:(Prefix Header File)(頭文件)現(xiàn)在的項(xiàng)目都需要自己創(chuàng)建
2.info.plist詳解
- 在xcode5 中是"項(xiàng)目名稱-Info.plist"表示項(xiàng)目的全局配置文件,非常重要琳要。在新版本xcode中(和xcode6.1)寡具,該文件名稱就叫Info.plist。
- 注意:自己創(chuàng)建的plist文件中不要包含Info關(guān)鍵字稚补。
- Info.plist中的一些配置項(xiàng):
- Bundle display name(在xcode6.1中叫做"Bundle name"), 表示軟件安裝到手機(jī)上后童叠,顯示的名稱。
** 當(dāng)修改了該名稱后课幕,為了保證有效, 點(diǎn)擊Product -> Clean, 同時(shí)將軟件從模擬器中卸載掉厦坛,然后再重新運(yùn)行。 - Bundle identifier, app的唯一標(biāo)識(shí)乍惊。
- Bundle version, 每次發(fā)布軟件的版本號(hào)杜秸。每次向AppStore上傳的同一個(gè)軟件, 新的版本號(hào)必須大于舊的, 否則無法上傳。
- Main storyboard file base name, 對(duì)應(yīng)的就是選中"項(xiàng)目" -> "General" -> "Deployment Info" -> "Main Interface" 中的設(shè)置润绎。
- Supported interface orientations, 標(biāo)識(shí)設(shè)備所支持的方向撬碟。對(duì)應(yīng)的選中"項(xiàng)目" -> "General" -> "Deployment Info" -> "Device Orientation"。iPhone只支持三種方向, 不支持上下旋轉(zhuǎn)(iPad支持)莉撇。Portrait(豎屏)呢蛤、Landscape Left(橫屏向左)、Landscape Right(橫屏向右)棍郎。
- Info.plist就是一個(gè)xml文件, 用記事本打開看一下其障。
3.詳解PCH文件
1.為什么使用PCH文件
- 整個(gè)項(xiàng)目中很多地方都在使用某個(gè)類的頭文件
- 整個(gè)項(xiàng)目很多地方都在用同一個(gè)"宏"
- 在項(xiàng)目中很多地方用到了NSLog()函數(shù),想要一下子清除掉
2.特點(diǎn)
pch文件就是一個(gè)頭文件(類似于*.h文件)項(xiàng)目中的所有其他代碼文件無需顯示導(dǎo)入該P(yáng)CH文件, 默認(rèn)就都可以訪問(其他文件無需手動(dòng)#import該 pch文件就能使用)。
參考代碼:
假設(shè)在整個(gè)項(xiàng)目中有多個(gè)地方在使用WYModel類, 那么可以在每個(gè)使用到WYModel類的地方都#import "WYModel.h", 或者把#import "WYModel.h"放到pch文件中涂佃。
3.如何創(chuàng)建PCH
1.在XCode6.1過后默認(rèn)就沒有pch文件,創(chuàng)建方式: 選擇"Supporting Files" -> 右鍵 -> "New File" -> "Other" -> "PCH File" -> "PrefixHeader.pch"励翼。
2.選中項(xiàng)目 -> Build Setting -> All -> 搜索"prefix head" -> 修改Prefix Header的內(nèi)容為:
- "$(SRCROOT)/$(PRODUCT_NAME)/PrefixHeader.pch" (如果有問題蜈敢,換下面的方式,可能會(huì)與中文有關(guān))
-
或者
"$(SRCROOT)/對(duì)應(yīng)的文件夾名/PrefixHeader.pch"
4.項(xiàng)目中PCH常用宏
// 屏幕寬度
#define SCREEN_WIDTH [[UIScreen mainScreen] bounds].size.width
// 屏幕高度
#define SCREEN_HEIGHT [[UIScreen mainScreen] bounds].size.height
// Color
#define COLOR_RGB(r,g,b) [UIColor colorWithRed:(r/255.0f) green:(g/255.0f) blue:(b/255.0f) alpha:1]
#define COLOR_RGBA(r,g,b,a) [UIColor colorWithRed:(r/255.0f) green:(g/255.0f) blue:(b/255.0f) alpha:a]
#define WLBHexColor(colorString) [WLBHexColor hexColor:colorString]
// NSLog
#if DEBUG
#define NSLog(s,...) NSLog(@"%s LINE:%d < %@ >",__FUNCTION__, __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__])
#else
#define NSLog(...) {}
#endif