最近在看IOS的面试题,遇到一个题叫做“类别的作用”,其作用有3:
(1)可以将类的实现分散到多个不同文件或多个不同框架中,方便代码管理。也可以对框架提供类的扩展(没有源码,不能修改)。
(2)创建对私有方法的前向引用:如果其他类中的方法未实现,在你访问其他类的私有方法时编译器报错这时使用类别,在类别中声明这些方法(不必提供方法实现),编译器就不会再产生警告
(3)向对象添加非正式协议:创建一个NSObject的类别称为 “创建一个非正式协议”,因为可以作为任何类的委托对象使用。
第1个和第3个好理解,但第2个怎么理解,我感觉一头雾水,
首先,第一句话 “如果其他类中的方法未实现”, 为什么方法未实现,不实现声明那个方法干什么
其次,“访问其他类的私有方法时编译器报错这时使用类别”, 声明这些方法,等于是声明了一个与该类同名的方法,先前的是private的,这样做有什么意义?
谁能帮我解释一下?