iOS开发中我们必不可少地会使用到分类,不管是自己创建的分类还是使用别人写的分类,如经典的SDWebImage中UIImageView的分类UIImageView+WebCache。
但我们在使用分类的时候需要注意几点,不然会出现一些我们意想不到的问题。
这里说两点我曾遗漏的问题
1.某个类的多个分类可能由重名的方法名
1.1如果分类中的方法名和主类的某个方法名重名,那么首先执行分类中的方法
1.2如果某个类的分类中存在相同的方法名,那么后参与编译的分类中的方法会先被调用,而其他分类中的同样方法名的方法则不会被调用
2.分类如果重写主类中的(代理)方法,主类中的(代理)方法将不会执行
之前在集成推送的时候,为AppDelegate创建了一个分类,并在分类中实现了推送相关的代理方法,于是AppDelegate中的推送的相关代理方法不在被执行,当时查了很久才找到问题所在。
看图
0.主类.png
0.分类.png
0.打印.png
看最终的打印,我们可以看到走的都是分类中的方法。
本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。😊