導(dǎo)入
方法一
使用終端命令執(zhí)行
- 執(zhí)行過不用重新執(zhí)行
sudo gem install -n /usr/local/bin cocoapods
pod init
touch Podfile
- 內(nèi)容格式如下
platform :ios, '7.0'
target 'project name' do
pod 'CocoaLumberjack' , '~> 2.0'
end
pod install
方法二
在xcode對應(yīng)工程中直接創(chuàng)建
new file
創(chuàng)建 empty
文件 名稱為Podfile
內(nèi)容格式如上
platform :ios, '7.0'
target 'project name' do
pod 'CocoaLumberjack' , '~> 2.0'
end
使用cd
并拖入Podfile
獲取路徑 之后刪除Podfile
進入目錄
然后使用pod install
語法
- > 0.1 高于0.1版本(不包含0.1版本)的任意一個版本
- >= 0.1 高于0.1版本(包含0.1版本)的任意一個版本
- < 0.1 低于0.1版本(不包含0.1版本)的任意一個
- <= 0.1低于0.1版本(包含0.1版本)的任意一個
- ~> 0.1.2 版本 0.1.2的版本到0.2 ,不包括0.2。這個基于你指定的版本號的最后一個部分。這個例子等效于>= 0.1.2并且 <0.2.0,并且始終是你指定范圍內(nèi)的最新版本。
注意
- 用cocoapods 導(dǎo)入swift 框架到swift項目和OC項目都必須要 use_frameworks!
- 用動態(tài)庫,必須要在Podfile文件中添加 use_frameworks!
具體庫
1.Aspects
aspect oriented programming 面向切面編程
不同于面向?qū)ο蟮姆庋b思想,針對不同封裝對象于某一切面進行統(tǒng)一操作
Aspects 用于支持AOP(面向切面編程)模式,用于部分解決OOP(面向?qū)ο?模式無法解決的特定問題.具體指的是那些在多個方法有交叉,無法或很難被有效歸類的操作,比如:
不論何時用戶通過客戶端獲取服務(wù)器端數(shù)據(jù),權(quán)限檢查總是必須的.
不論何時用戶和市場交互,總應(yīng)該更具用戶的操作提供相應(yīng)地購買參考或相關(guān)商品.
所有需要日志記錄的操作.
// 為一個指定的類的某個方法執(zhí)行前/替換/后(options),添加一段代碼塊.對這個類的所有對象都會起作用.
//
// @param block 方法被添加鉤子時,Aspectes會拷貝方法的簽名信息.
// 第一個參數(shù)將會是 `id<AspectInfo>`,余下的參數(shù)是此被調(diào)用的方法的參數(shù).
// 這些參數(shù)是可選的,并將被用于傳遞給block代碼塊對應(yīng)位置的參數(shù).
// 你甚至使用一個沒有任何參數(shù)或只有一個`id<AspectInfo>`參數(shù)的block代碼塊.
//
// @注意 不支持給靜態(tài)方法添加鉤子.
// @return 返回一個唯一值,用于取消此鉤子.
+ (id<AspectToken>)aspect_hookSelector:(SEL)selector
withOptions:(AspectOptions)options
usingBlock:(id)block
error:(NSError **)error;
使用如下:
/*!
* @brief 應(yīng)用加載前進行hook設(shè)置
*
*/
[AppDelegate aspect_hookSelector:@selector(application:didFinishLaunchingWithOptions:)
withOptions:AspectPositionAfter
usingBlock:^{
[HWAnalytics setupUMMobclick];
[HWAnalytics setUpAnalytics];
}
error:NULL];
/*!
* @brief 頁面訪問時長hook
*
*/
[UIViewController aspect_hookSelector:@selector(viewDidAppear:)
withOptions:AspectPositionAfter
usingBlock:^(id<AspectInfo> aspectInfo, BOOL animated) {
[HWAnalytics pageBeginHook:aspectInfo.instance];
}
error:NULL];
[UIViewController aspect_hookSelector:@selector(viewDidDisappear:)
withOptions:AspectPositionAfter
usingBlock:^(id<AspectInfo> aspectInfo, BOOL animated) {
[HWAnalytics pageEndHook:aspectInfo.instance];
}
error:NULL];
}
CocoaLumberjack
DDLog類,用于打印和日志收集。