Cocoapods意義體如今兩個方面。第一,在引入第三方庫時它能夠自動爲咱們完成各類各樣的配置,包括配置編譯階段、鏈接器選項、甚至是ARC環境下的-fno-objc-arc配置等。第二,使用CocoaPods能夠很方便地查找新的第三方庫,這些類庫是比較「標準的」,而不是網上隨便找到的,這樣可讓咱們找到真正好用的類庫。react
CocoaPods的核心組件ios
CocoaPods是用Ruby寫的,並劃分紅了若干個Gem包。git
CocoaPods在解析執行過程當中最重要的幾個包的路徑分別是:CocoaPods/CocoaPods、 CocoaPods/Core和 CocoaPods/Xcodeproj。github
CocoaPods / CocoaPod:這是面向用戶的組件,每當執行一個pod命令時,這個組件將被激活。它包括了全部實用CocoaPods的功能,而且還能調用其餘gem包來執行任務。web
CocoaPods / Core:Core gem提供了與CocoaPods相關的文件(主要是podfile和podspecs)的處理。xcode
Podfile:該文件用於配置項目所須要的第三方庫,它能夠被高度定製。本文中咱們主要在這裏作動做。ruby
Podspec:該文件描述了一個庫將怎樣被添加進工程中。.podspec文件能夠標識該第三方庫所須要的源碼文件、依賴庫、編譯選項,以及其餘第三方庫須要的配置。測試
CocoaPods / Xcodeproj:這個包負責處理工程文件,它能建立以及修改.xcodeproj文件和.xcworkspace文件。它也能夠做爲一個獨立的包使用,當你要編寫修改項目文件的腳本時,能夠考慮使用CocoaPods/Xcodeproj。優化
Cocoapods安裝步驟網站
一、升級Ruby環境
終端輸入:$gem update --system
此時會出現
ERROR: While executing gem ... (Gem::FilePermissionError)
You don‘t have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
zijingMacBook-Pro:~ shiyunlei$ sudo gem update —system
這個是由於你沒有權限去更新Ruby
這個時候你能夠在終端使用:$sudo gem update —system來進行升級
這個時候表示Ruby升級完成。
二、安裝CocoaPods時咱們要訪問cocoapods.org,該網站可能被咱們大天朝牆了,這樣下載安裝可能會是龜速,幸虧咱們能夠用淘寶的Ruby鏡像來訪問該網站,方法以下:
一、gem sources --remove https://rubygems.org/
二、gem sources -a http://ruby.taobao.org/
可使用下面的命令(紅色部分)查看是否更換鏡像成功(以下圖所示):
$ gem sources -l
三、安裝Cocoapods,在終端輸入命令
$sudo gem install cocoapods
這個時候會提示你輸入密碼,注:在終端輸入密碼不會有提示,光標也不會移動,必定要注意
開始安裝,以下圖:PS:這個過程可能花費時間比較長
安裝成功以下:
四、使用search命令搜索類庫名:
$pod search AFNetworking
若是CocoaPods支持,將會輸出搜索到的全部類庫版本和信息,以及在Podfile中配置的寫法,終端返回信息以下:
-> AFNetworking (2.3.1)
A delightful iOS and OS X networking framework.
pod ‘AFNetworking‘, ‘~> 2.3.1’(這個語句是須要在編輯Podfile的時候輸入的命令,便是如何安裝下載相關類庫的指令)
- Homepage: https://github.com/AFNetworking/AFNetworking
- Source: https://github.com/AFNetworking/AFNetworking.git
- Versions: 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0,
2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4, 1.3.3,
1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2, 1.0RC1,
0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo]
- Sub specs: - AFNetworking/Serialization (2.3.1) -
AFNetworking/Security (2.3.1) - AFNetworking/Reachability (2.3.1) -
AFNetworking/NSURLConnection (2.3.1) - AFNetworking/NSURLSession (2.3.1)
- AFNetworking/UIKit (2.3.1)
-> AFNetworking+AutoRetry (0.0.5)
Auto Retries for AFNetworking requests
pod ‘AFNetworking+AutoRetry‘, ‘~> 0.0.5‘
- Homepage: https://github.com/shaioz/AFNetworking-AutoRetry
- Source: https://github.com/shaioz/AFNetworking-AutoRetry.git
- Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo] 搜索會出現不少版本,找到最新的就複製下版本,關閉終端從新操做。
五、須要在工程中根目錄,工程下面建立一個Podfile文件,
platform :ios, '8.0' #use_frameworks!//個別須要用到它,好比reactiveCocoa target 'MyApp' do pod 'AFNetworking', '~> 2.6' pod 'ORStackView', '~> 3.0' pod 'SwiftyJSON', '~> 2.3' end
按這種格式輸入不會報下面這種錯誤:
The dependency `` is not used in any concrete target The dependency `AFNetworking ` is not used in any concrete target
還有一種寫法:
platform :ios, '8.0' #use_frameworks!個別須要用到它,好比reactiveCocoa def pods pod 'AFNetworking', '~> 2.6' pod 'ORStackView', '~> 3.0' pod 'SwiftyJSON', '~> 2.3' end target 'MyApp' do pods end
以後關閉工程,打開終端,cd進入工程目錄,到有pod文件的那層。pod install便可,而後再次打開工程,打開.xcworkspace文件便可。
PrefixHeader.pch的使用:
1,新建pch文件,名字就是prefixHeader.pch
2,打開工程設置,building setting 搜索PrefixHeader,修改配置
根路徑:$(SRCROOT)/工程名/PrefixHeader.pch 好比:$(SRCROOT)/新聞APP/PrefixHeader.pch 注意不能打錯字母。
裏面基本都是定義宏文件。
三,Const
宏與常/變量的選擇?
#define HSCoder @"漢斯哈哈哈"//宏,若是牽扯到計算,宏就不如Const好用了 NSString *HSCoder = @"漢斯哈哈哈";//變量 extern NSString *HSCoder;//extern 1.假如其餘a類中已經聲明瞭meString,你在另一個b類中想使用這個變量,能夠extern NSString* meString;會獲得a類中一樣的值,且可從新賦值。 extern const NSString *HSCoder;//http://blog.csdn.net/sqq521/article/details/17465793 static const NSString *HSCoder = @"漢斯哈哈哈";//局部變量,外部不能訪問。不然報錯:
const NSString *HSCoder = @"漢斯哈哈哈"; NSString const *HSCoder = @"漢斯哈哈哈";//同上一個,常量指針,*HSCoder 不能修改,HSCoder 能夠修改; NSString * const HSCoder = @"漢斯哈哈哈";//指針常量,HSCoder 不能修改,*HSCoder 能夠修改。
通常項目中,定義全局常量,會寫在獨立文件裏:
HSConst.m 定義常量:
HSConst.h 提供外接訪問常量:
在AppDelegate中訪問:
參考:http://www.jianshu.com/p/f83335e036b5