美文网首页
iOS 类别和类扩展

iOS 类别和类扩展

作者: T_label | 来源:发表于2017-04-12 22:14 被阅读79次

category和extensions不同在于extensions可以添加属性,并且添加的方法必须实现,extensions可以认为是一个私有的category。

分类可以在不获取不修改原代码的前提下新增新方法,只能添加,不能删除和修改。如果分类和原类中的方法名重名,会覆盖原类中的方法,分类具有更高优先级。

继承可以添加,删除,修改方法,并且还可以添加属性。

两种情况只能使用继承,而不能使用类别:
1、新扩展的类和原类重名,但是还需要原类中的方法。
2、扩展类的属性。

两种情况只能使用类别,而不能使用继承:
1、针对系统的类,如NSString、NSArrray等,系统本身是不提倡继承去扩展,因为这些类内部实现对继承有限制。
2、对自己构建的类,把相关的方法分组到多个单独的文件中,有助于维护。

相关文章

网友评论

      本文标题:iOS 类别和类扩展

      本文链接:https://www.haomeiwen.com/subject/yjdvattx.html