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的主要内容,如果未能解决你的问题,请参考以下文章