导入
方法一
使用终端命令执行
- 执行过不用重新执行
sudo gem install -n /usr/local/bin cocoapods
pod init
touch Podfile
- 内容格式如下
platform :ios, '7.0'
target 'project name' do
pod 'CocoaLumberjack' , '~> 2.0'
end
pod install
方法二
在xcode对应工程中直接创建
new file
创建 empty
文件 名称为Podfile
内容格式如上
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,并且始终是你指定范围内的最新版本。
注意
- 用cocoapods 导入swift 框架到swift项目和OC项目都必须要 use_frameworks!
- 用动态库,必须要在Podfile文件中添加 use_frameworks!
具体库
1.Aspects
aspect oriented programming 面向切面编程
不同于面向对象的封装思想,针对不同封装对象于某一切面进行统一操作
Aspects 用于支持AOP(面向切面编程)模式,用于部分解决OOP(面向对象)模式无法解决的特定问题.具体指的是那些在多个方法有交叉,无法或很难被有效归类的操作,比如:
不论何时用户通过客户端获取服务器端数据,权限检查总是必须的.
不论何时用户和市场交互,总应该更具用户的操作提供相应地购买参考或相关商品.
所有需要日志记录的操作.
// 为一个指定的类的某个方法执行前/替换/后(options),添加一段代码块.对这个类的所有对象都会起作用.
//
// @param block 方法被添加钩子时,Aspectes会拷贝方法的签名信息.
// 第一个参数将会是 `id<AspectInfo>`,余下的参数是此被调用的方法的参数.
// 这些参数是可选的,并将被用于传递给block代码块对应位置的参数.
// 你甚至使用一个没有任何参数或只有一个`id<AspectInfo>`参数的block代码块.
//
// @注意 不支持给静态方法添加钩子.
// @return 返回一个唯一值,用于取消此钩子.
+ (id<AspectToken>)aspect_hookSelector:(SEL)selector
withOptions:(AspectOptions)options
usingBlock:(id)block
error:(NSError **)error;
使用如下:
/*!
* @brief 应用加载前进行hook设置
*
*/
[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类,用于打印和日志收集。