iOS 面试

#3-Category和Extension 区别

2018-08-02  本文已影响0人  iRemark
Category和Extension的区别:

Category的方法不一定非要在@implement中实现,也可以在其他位置中实现,但是当调用Category的方法时,依据继承树没有找到该方法的实现,程序则会崩溃;并且,Category的方法优先级较高,可以覆盖原类的方法;

Category的方法中,不可以调用super方法;
在实际开发中要注意的是,Category 方法可能会覆盖于同一个类class 的其它 category 中的方法。但也可能被覆盖,因为不法预知他们的加载优先顺序,出现这种情况通常会在编译时出错。如果在一个开发的SDK中使用了类别, 就最好保证类别名不同于使用者的类别名以及类别方法也不同于使用者的类别方法名, 通常通过加前缀来做到。

https://www.jianshu.com/p/57d7f1910ef4

上一篇 下一篇

猜你喜欢

热点阅读