CocoaPods是一个负责管理iOS项目中第三方开源代码的工具。使用CocoaPods可以为我们节省设置和更新第三方开源库的时间。
一、安装CocoaPods
先使用下面命令升级Ruby版本:
等待更新完成后,然后通过gem命令来下载安装CocoaPods:
安装完毕后调用下面命令,进行CocoaPods设置:
执行完成上述命令后,表示安装成功!
二、使用CocoaPods
打开终端,使用cd命令定位到需要使用CocoaPods的项目根路径。如:
先考虑项目中需要引用哪些库,然后在通过search命令来查找库的信息,如需要加入JSONKit,那可以如下写法:
命令执行后会得到如下结果:
其中的pod 'JSONKit', '~> 1.5pre'是待会要写入到Podfile中的信息。如果已经知道这些信息,那可以直接省略此步。直接进行下面的步骤。
得到必要的库信息后,现在需要在项目中建立Podfile文件。通过下面的命令:
然后编辑Podfile文件,命令如下:
在弹出的编辑界面中输入下面内容:
然后调用下面命令来进行初始化:
运行完毕后,原本的项目目录会多出一些文件。如图:
多了*.xcworkspace pod等文件。这是pod生成的项目管理文件,打开LibDemo.xcworkspace 项目文件,在Xcode里看到是这样的目录结构:
这里要注意的一点是,如果不调用创建Podfile命令就直接调用pod install命令。将会提示“
[!] No `Podfile' found in the current working directory.”
如果Podfile中添加了新库,可以使用下面命令进行更新:
现在,你的所有第三方库都已经下载完成并且设置好了编译参数和依赖,你只需要记住如下2点即可:
1、使用CocoaPods生成的 .xcworkspace 文件来打开工程,而不是以前的 .xcodeproj 文件。
2、每次更改了Podfile文件,你需要重新执行一次pod install或者pod update命令 。
公共接口,方法较多也选择用delegate进行解耦
iOS有很多例子比如最常用tableViewDelegate,textViewDelegate
异步和简单的回调用block更好
iOS有很多例子比如常用的网络库AFNetwork,ASIHTTP库,UIAlertView类。
都是为了在具体的实现Delegate或Block中再进行处理,属于策略模式,具体算法在具体算法类中实现。
显示状态栏菊花效果
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
public abstract class AbstractPointcutAdvisor { @Override public boolean equals(Object other) { if (this == other) { return true; } if (!(other instanceof PointcutAdvisor)) { return false; } PointcutAdvisor otherAdvisor = (PointcutAdvisor) other; return (ObjectUtils.nullSafeEquals(getAdvice(), otherAdvisor.getAdvice()) && ObjectUtils.nullSafeEquals(getPointcut(), otherAdvisor.getPointcut())); } @Override public int hashCode() { return PointcutAdvisor.class.hashCode(); } }
other instanceof PointcutAdvisor 要判断一下 类型,可能会有不是该类型的类传入