一、类别
类别(Category)的基本概念封装是面向对象的一个特征,OC也不例外,但是有的时候我们会碰到这样的一种情况,比如我封装了一个类,不想再动它了,可是随着程序功能的增加,需要在那个类中增加一个小小的方法,这是我们就不必再那个类中做修改或者在定义一个子类,只需要在用到的地方随手添加一个该类的类别(Category)即可。
(1)在类别中定义的方法,会成为原始类的一部分,与其他方法的调用没有区别。
(2)通过给父类定义类别方法,其子类也会继承这些方法。如果子类添加类别方法,父类则不会用手子类的类别方法。
类别方法的应用
对现有类进行扩展:比如,可以进行扩展Cocoa touch框架中类,你在类别中增加的方法会被子类所继承,而且在运行时跟其他的方法没有区别。
作为子类的替代手段:不需要定义和使用一个子类,你可以通过类别直接向已有的类别中增加方法。
对类中的方法进行归类:利用category把一个庞大的类划分为小块来分别进行开发,从而更好的对类中的方法进行更新和维护。
类别方法的局限性
无法向类别中,添加新的实例变量,类别没有位置来容纳实例变量。如果想增加类的实例变量,只能通过定义子类的方式。
如若在类别中覆盖现有类的方法。这样可能会引起super消息链的断裂,因为类别中的方具有更高的优先级,因此,一般不要覆盖现有类中的方法类别的命名和用法
类别的命名规则:类名+扩展方法,如:NNString+Add;类别的接口声明与类的定义十分相似,但是类别不继承父类,只需要带有一个括号,表明该类的主要用途
1,类别可以给oc的类添加方法
2,类别可以覆盖oc类原有的方法-但是强烈建议,不要用
3,类别命名规范 类名+类别名
二、cocoapods简介
1,检查有没有ruby环境
ruby -- version
2,安装 cocoapods
安装之前,先替换ruby环境,替换成淘宝的
gem sources --remove https://rubygems.org/
//等有反应之后再敲入以下命令
gem sources --add https://ruby.taobao.org/
可以使用以下代码进行查看
gem sources -l
安装
sudo gem install cocoapods
注意:sudo命令需要获取你的root权限,所以需要输入密码
输入密码的时候,没有输入提示,直接输就行了
2,使用
首先需要在工程目录创建一个Podfile文件
touch Podfile
进入文件目录
cd + 文件路径
显示全路径信息
pwd
列出文件夹下的文件
ls
3,管理三方库
在Podfile里面,添加或者删除三方库
然后命令行中输入
pod install --verbose --no-repo-update
进行三方库的更新
pod update
查看帮助
pod help
4,pod 搜索
可以使用以下命令进行三方库的搜索
pod search + 库名称
三、Cocoapods步骤
1,cd 到工程目录,比如工程名字为 abc
2,touch Podfile (创建Podfile文件)
3,使用记事本打开Podfile文件
在里面添加:
platform :ios, '8.0'
target "abc" do
pod 'MJRefresh', '~> 3.1.0'
end
解析:
1,支持的系统版本
platform
2,工程名字
target "abc" do
3,三方库的pod导入命令
pod 'MJRefresh', '~> 3.1.0'
4,在终端中输入命令
pod install
完事!
其他用法
更新
pod update
四、pod错误解决办法
先安装rvm
#Install rvm
\curl -sSL https://get.rvm.io | bash -s stable
再安装ruby
如果rvm找不到命令
—》
#Install ruby version 2.0.0-p451
rvm install ruby-2.0.0-p451
#Print ruby version to verify that it was installed successfully
ruby -v
#Install json gem
sudo gem install cocoapods
五、pod命令
//命令被屏蔽
pod install
//换成
pod install --verbose --no-repo-update
//生成Podfile文件
touch Podfile