iOS开发中使用分类需要注意的地方

iOS开发中我们必不可少地会使用到分类,不管是自己创建的分类还是使用别人写的分类,如经典的SDWebImage中UIImageView的分类UIImageView+WebCache。

但我们在使用分类的时候需要注意几点,不然会出现一些我们意想不到的问题。

这里说两点我曾遗漏的问题

1.某个类的多个分类可能由重名的方法名

1.1如果分类中的方法名和主类的某个方法名重名,那么首先执行分类中的方法
1.2如果某个类的分类中存在相同的方法名,那么后参与编译的分类中的方法会先被调用,而其他分类中的同样方法名的方法则不会被调用

2.分类如果重写主类中的(代理)方法,主类中的(代理)方法将不会执行

之前在集成推送的时候,为AppDelegate创建了一个分类,并在分类中实现了推送相关的代理方法,于是AppDelegate中的推送的相关代理方法不在被执行,当时查了很久才找到问题所在。

看图
0.主类.png
0.分类.png
0.打印.png

看最终的打印,我们可以看到走的都是分类中的方法。

本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。😊

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

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,174评论 1 32
  • 1.设计模式是什么? 你知道哪些设计模式,并简要叙述? 设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类...
    司马DE晴空阅读 1,357评论 0 7
  • 设计模式是什么? 你知道哪些设计模式,并简要叙述? 设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型的...
    卑微的戏子阅读 642评论 0 1
  • 第一条:了解Objective-C语言的起源 Objective-C语言是一门面向对象的语言,与C++、Java等...
    伯陽阅读 1,323评论 0 9
  • 因为你我把自己折磨成疯子。在朋友和你眼里我一直是就是疯子。 对啊。我不疯为何因为你折磨自己那。。。
    一首老歌丶阅读 136评论 0 0