iOS Hook系统类的办法,比如:UITextSelectionView

Posted hherima

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS Hook系统类的办法,比如:UITextSelectionView相关的知识,希望对你有一定的参考价值。

        由于UITextSelectionView是系统的私有类,连头文件都没有。那么我们怎么hook它的方法呢。比如初始化方法initWithInteractionAssistant:

        找一个类的+load方法,比如UIView的load方法,

//步骤一
        Method originEat = class_getInstanceMethod(NSClassFromString(@"UITextSelectionView"), NSSelectorFromString(@"initWithInteractionAssistant:"));
        //步骤二
        Method swizzlingEat = class_getInstanceMethod([self class], @selector(initWithInteractionAssistant_MY:));
        //步骤三
        class_addMethod(NSClassFromString(@"UITextSelectionView"), @selector(initWithInteractionAssistant_MY:), method_getImplementation(originEat), method_getTypeEncoding(originEat));
        //步骤四
        method_exchangeImplementations(originEat, swizzlingEat);

 

-(instancetype)initWithInteractionAssistant_MY:(id)d
    //your code here
    return [self initWithInteractionAssistant_MY:d];
    

 

以上是关于iOS Hook系统类的办法,比如:UITextSelectionView的主要内容,如果未能解决你的问题,请参考以下文章

英语写作中的hook是指啥

Hook CreateProcess

logrus 剖析之 hook

WndProc和hook区别

CI框架源代码阅读笔记6 扩展钩子 Hook.php

Android系统篇之----解读AMS远端服务调用机制以及Activity的启动流程