iOS开发基础:类别(Category)与类扩展 (Extens

2018-01-14  本文已影响0人  TK001

一、类别(Categroy)

再将类别之前,先介绍一下为什么要使用类别。
在开发大型项目中,企业级开发中多人同时维护同一个类,此时程序员A因为某项需求只想给当前类添加一个方法,那该怎么办呢?
当然最简单粗暴的方式是把newMethod添加到currentClass中,然后直接实现该方法就OK了。
但考虑到OC是单继承的,子类可以拥有父类的方法和属性。而这个方法只有这个类需要,而它的子类不需要。那么就可以用类别
还有,如果你觉得系统提供的类太过局限,不能达到你的要求,你还想实现别的功能,但是你还不能修改系统提供的方法,这个时候,你就可以发挥OC动态语言的特性,添加一个类别
苹果为了解决这个问题,就引入了分类(Category)的概念。

Category的注意点:

#import
@interface 类名(分类名字)
/* 方法声明*/
@end
@implement 类名(分类名字)
/*方法实现*/
@end

二、类扩展(Class Extension)

Extension是Category的一个特例。类扩展与分类相比只少了分类的名称,所以称之为“匿名分类”。其实开发当中,我们几乎天天在使用。对于有些人来说像是最熟悉的陌生人。

#import
@interface myClass()
{
     // 成员变量
}
// 属性
// 方法
@end
@implement
@end

Category和Extension的区别

上一篇 下一篇

猜你喜欢

热点阅读