一、分类
1.在不改变原有类的基础上为类添加方法,只能添加方法,由此延伸到继承,而继承呢不但可以扩充方法,还可以添加属性。
2.分类可以有多个,也就是一个类可以有多个分类。
3.分类的用途:
(1)可以为系统的类添加我们想要的方法,比如,我们在写程序的用到tableView,有时候没有网络或者服务器停止时,界面刷新不出来,我们需要展位图提醒用户,这时我们可以用类别的方法,为UITableView添加一个方法,当没有数据时我们可以调用该方法显示展位图。
(2)多人合作时,由于功能的不同可能需要多个不同的方法,我们只需创建一个类,每个人分别用类别的方法去为类添加自己需要的方法,这样节省开发时间,出错率也很小。
二、类的扩展
1.可以创建一个未命名的分类,里面不但可以扩充方法,还可以添加变量,但是方法的实现要到主实现区去实现的。其实就是在。m文件中添加interface关键字,分类名不写,方法的实现在当前。m文件中实现。这些方法和属性就成为私有的(个人理解)
三、协议以及协议的使用
1.因为继承的耦合性强,并且oc是单继承的,所以协议就应用而生,协议是一系列标准的方法列表,可以被任何类实现。
2.协议中不能声明成员变量,只要一个类遵守了这个协议,也相当于拥有了该协议中所有方法的声明。
3.根据继承的规则,只要父类遵守了该协议,那么它的子类也就都遵守该协议,并且一类中可以遵守多个协议,最常用的就是UITableView啦,遵守了UITableViewDelegate, UITableViewDataSource两个协议
4协议中有两种情况,一种是必须要实现的required,一种是可选择实现optional。
5.一个协议可以遵守其他的多个协议,相当于他用了其他协议方法的声明。
6.可以定义对象的时候,限制这个类去遵守这个协议。