• 黑魔法的注意的一些点


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

  • 相关阅读:
    Thrift在微服务中的使用
    MySQL 必知必会
    IDEA 内使用 git
    分布式锁
    LeetCode 图
    LeetCode 位运算
    LeetCode 数组
    LeetCode 字符串
    LeetCode 哈希表
    LeetCode 栈和队列
  • 原文地址:https://www.cnblogs.com/yuxiaoyiyou/p/9356087.html
Copyright © 2020-2023  润新知