runtime方法交换原理

2019-11-28  本文已影响0人  吓死宝宝了啊

method_exchangeImplementations(Method m1,Method m2)

{

    if(!m1  ||  !m2)return;

    mutex_locker_t lock(runtimeLock);

    IMPm1_imp = m1->imp;

    m1->imp= m2->imp;

    m2->imp= m1_imp;

//刷新所有类、元类、子类的缓存 会很慢,比较耗时

    flushCaches(nil);

//更新方法

    updateCustomRR_AWZ(nil, m1);

    updateCustomRR_AWZ(nil, m2);

}

上一篇 下一篇

猜你喜欢

热点阅读