1.項目中的常見文件
1.XxxxTest文件夾用來做單元測試。
2.Products目錄
- 在Mac程序下,生產的可執行文件app會存放到該目錄下。該可執行文件未加密,可使用class-dump提取出所有頭文件
- iOS程序產生的是ipa文件。這個目錄對于iOS程序來說意義不大。
- info.plist(全局配置文件, 非常重要, 不能刪除 ):
- pch文件:(Prefix Header File)(頭文件)現在的項目都需要自己創建
2.info.plist詳解
- 在xcode5 中是"項目名稱-Info.plist"表示項目的全局配置文件,非常重要。在新版本xcode中(和xcode6.1),該文件名稱就叫Info.plist。
- 注意:自己創建的plist文件中不要包含Info關鍵字。
- Info.plist中的一些配置項:
- Bundle display name(在xcode6.1中叫做"Bundle name"), 表示軟件安裝到手機上后,顯示的名稱。
** 當修改了該名稱后,為了保證有效, 點擊Product -> Clean, 同時將軟件從模擬器中卸載掉,然后再重新運行。 - Bundle identifier, app的唯一標識。
- Bundle version, 每次發布軟件的版本號。每次向AppStore上傳的同一個軟件, 新的版本號必須大于舊的, 否則無法上傳。
- Main storyboard file base name, 對應的就是選中"項目" -> "General" -> "Deployment Info" -> "Main Interface" 中的設置。
- Supported interface orientations, 標識設備所支持的方向。對應的選中"項目" -> "General" -> "Deployment Info" -> "Device Orientation"。iPhone只支持三種方向, 不支持上下旋轉(iPad支持)。Portrait(豎屏)、Landscape Left(橫屏向左)、Landscape Right(橫屏向右)。
- Info.plist就是一個xml文件, 用記事本打開看一下。
3.詳解PCH文件
1.為什么使用PCH文件
- 整個項目中很多地方都在使用某個類的頭文件
- 整個項目很多地方都在用同一個"宏"
- 在項目中很多地方用到了NSLog()函數,想要一下子清除掉
2.特點
pch文件就是一個頭文件(類似于*.h文件)項目中的所有其他代碼文件無需顯示導入該PCH文件, 默認就都可以訪問(其他文件無需手動#import該 pch文件就能使用)。
參考代碼:
假設在整個項目中有多個地方在使用WYModel類, 那么可以在每個使用到WYModel類的地方都#import "WYModel.h", 或者把#import "WYModel.h"放到pch文件中。
3.如何創建PCH
1.在XCode6.1過后默認就沒有pch文件,創建方式: 選擇"Supporting Files" -> 右鍵 -> "New File" -> "Other" -> "PCH File" -> "PrefixHeader.pch"。
Paste_Image.png
2.選中項目 -> Build Setting -> All -> 搜索"prefix head" -> 修改Prefix Header的內容為:
- "$(SRCROOT)/$(PRODUCT_NAME)/PrefixHeader.pch" (如果有問題,換下面的方式,可能會與中文有關)
-
或者
"$(SRCROOT)/對應的文件夾名/PrefixHeader.pch"
4.項目中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