iOS中 分类(category)与扩展(Extension)的区别?

1.分类(category)的作用

(1).作用:可以在不修改原来类的基础上,为一个类扩展方法。
(2).最主要的用法:给系统自带的类扩展方法。

2.分类中能写点啥?

(1).分类中只能添加“方法”,不能增加成员变量。
(2).分类中可以访问原来类中的成员变量,但是只能访问@protect和@public形式的变量。如果想要访问本类中的私有变量,分类和子类一样,只能通过方法来访问。
(3).如果一定要在分类中添加成员变量,可以通过getter,setter手段进行添加。

1.在项目中添加类,选择Objective-C File,填写自定义类名。

1.NSString+DLog.h文件:

iOS中  分类(category)与扩展(Extension)的区别?

2.NSString+DLog.m文件:

iOS中  分类(category)与扩展(Extension)的区别?

5.分类(category)和类扩展(extension)的关系

1.类扩展(extension)是category的一个特例,有时候也被称为匿名分类或者私有类。他的作用是为一个类添加一些私有的成员变量和方法。
2.类扩展能写点啥?和分类不同,类扩展即可以声明成员变量又可以声明方法。
3.类扩展听上去很复杂,但其实我们很早就认识他了。你记得继承自UIViewController的ViewController和继承自NSObject的类有什么不同么?
4.类扩展可以定义在.m文件中,这种扩展方式中定义的变量都是私有的,也可以定义在.h文件中,这样定义的代码就是共有的,类扩展在.m文件中声明私有方法是非常好的方式。
5.类扩展中添加的新方法,一定要实现。categorygory中没有这种限制。
上一篇:zTree的调用设使用(跨两个系统,两类技术实现的项目案例SpringMVC+Spring+MyBatis和Struts2+Spring+ibatis框架组合)


下一篇:改善Python程序的条条建议