iOS开发中category优点和缺点,作用

优点:

不需要通过增加子类而增加现有类的行为(方法),且类目中的方法与原始类方法基本没有区别;

通过类目可以将庞大一个类的方法进行划分,从而便于代码的日后的维护、更新以及提高代码的阅读性;

缺点:

无法向类目添加实例变量,如果需要添加实例变量,只能通过定义子类的方式;

类目中的方法与原始类以及父类方法相比具有更高优先级,如果覆盖父类的方法,可能导致super消息的断裂。因此,最好不要覆盖原始类中的方法。

类别的作用

给系统原有类添加方法,不能扩展属性。

如果类别中方法的名字跟系统的方法名一样,在调用的时候类别中的方法优先级更高;

分散类的实现:如:

+ (NSIndexPath *)indexPathForRow:(NSInteger)row inSection:(NSInteger)section

原本属于NSIndexPath的方法,

但因为这个方法经常使用的表的时候调用、跟表的关系特别密切,因此把这个方法一类别的形式、声明在UITableView.h中。

声明私有方法,某一个方法只实现,不声明,相当于私有方法。

类别不能声明变量,类别不可以直接添加属性。

property描述setter方法,就不会报错。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,220评论 30 472
  • OC的理解与特性 OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装、继承、多态。它既具有静态语言的特性...
    克鲁德李阅读 458评论 0 0
  • 面试题参考1 : 面试题[http://www.cocoachina.com/ios/20150803/12872...
    江河_ios阅读 1,762评论 0 4
  • 序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了。今年,找过工作人可能会更深刻地体会到今年的就...
    Jack_lin阅读 78,613评论 110 1,946
  • 文/Jack_lin(简书作者)原文链接://www.greatytc.com/p/5d2163640e2...
    笔笔请求阅读 567评论 0 0