黑魔法的注意的一些点

使用黑魔法替换系统方法时,替换的方法必须是适用于需要替换方法的属于的类以及子类,例如在UIScrollView的分类中使用replace_setBackgroundColor:替换掉setBackgroundColor:方法,将会出现奔溃,原因是UIScrollView的方法来源于UIView的方法,而指向UIView的setBackgroundColor:方法的除了UIScrollView之外,其它的子类也都有涉及,而实现方法的指针被指向了UIScrollView的该分类方法,如果是UIScrollView以及其子类,是没有问题的。但是如果是UIWindow这些只属于UIView子类的方法,将出现无法在此类方法列表中找到replace_setBackgroundColor:方法的问题而出现奔溃。正确的处理方法是先写个UIView的分类,然后在此分类中实现replace_setBackgroundColor:方法。总结:在分类中只能去替换该类和其子类独有的方法。

转载于:https://www.cnblogs.com/yuxiaoyiyou/p/9356087.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值