如何通过长尾词策略,将aspect原理应用于提升内容营销效果?
- 内容介绍
- 相关推荐
本文共计367个文字,预计阅读时间需要2分钟。
人的记忆力是有限的,而分析和建模与解释能力是无限的。+Call Hierarchy: isa hook aspect_hookClass() aspect_prepareClassAndHookSelector() aspect_add() [NSObject aspect_hookSelector:withOptions:usingBlock:error:] [NSURLCa
人的记忆能力是有限的,分析、建模与解释能力是无限的
Call Hierarchy
isa hook
aspect_hookClass()
aspect_prepareClassAndHookSelector()
aspect_add()
+[NSObject aspect_hookSelector:withOptions:usingBlock:error:]
+[NSURLCache load]
解释系统重定向
aspect_swizzleForwardInvocation()
aspect_hookClass()
aspect_prepareClassAndHookSelector()
aspect_add()
+[NSObject aspect_hookSelector:withOptions:usingBlock:error:]
+[NSURLCache load]
(解释)转发系统重定向
aspect_getMsgForwardIMP()
aspect_prepareClassAndHookSelector()
aspect_add()
+[NSObject aspect_hookSelector:withOptions:usingBlock:error:]
+[NSURLCache load]
// We use forwardInvocation to hook in.
class_replaceMethod(klass, selector, aspect_getMsgForwardIMP(self, selector), typeEncoding);
整体原理
上面讲了几种消息转发的方法,Aspects主要是利用了forwardInvocation进行转发,Aspects其实利用和kvo类似的原理,通过动态创建子类的方式,把对应的对象isa指针指向创建的子类,然后把子类的forwardInvocation的IMP替成__ASPECTS_ARE_BEING_CALLED__,假设要hook的方法名XX,在子类中添加一个Aspects_XX的方法,然后将Aspects_XX的IMP指向原来的XX方法的IMP,这样方便后面调用原始的方法,再把要hook的方法XX的IMP指向_objc_msgForward,这样就进入了消息转发流程,而forwardInvocation的IMP被替换成了__ASPECTS_ARE_BEING_CALLED__,这样就会进入__ASPECTS_ARE_BEING_CALLED__进行拦截处理,这样整个流程大概结束。
www.jianshu.com/p/0d43db446c5b
人的记忆能力是有限的,分析、建模与解释能力是无限的
本文共计367个文字,预计阅读时间需要2分钟。
人的记忆力是有限的,而分析和建模与解释能力是无限的。+Call Hierarchy: isa hook aspect_hookClass() aspect_prepareClassAndHookSelector() aspect_add() [NSObject aspect_hookSelector:withOptions:usingBlock:error:] [NSURLCa
人的记忆能力是有限的,分析、建模与解释能力是无限的
Call Hierarchy
isa hook
aspect_hookClass()
aspect_prepareClassAndHookSelector()
aspect_add()
+[NSObject aspect_hookSelector:withOptions:usingBlock:error:]
+[NSURLCache load]
解释系统重定向
aspect_swizzleForwardInvocation()
aspect_hookClass()
aspect_prepareClassAndHookSelector()
aspect_add()
+[NSObject aspect_hookSelector:withOptions:usingBlock:error:]
+[NSURLCache load]
(解释)转发系统重定向
aspect_getMsgForwardIMP()
aspect_prepareClassAndHookSelector()
aspect_add()
+[NSObject aspect_hookSelector:withOptions:usingBlock:error:]
+[NSURLCache load]
// We use forwardInvocation to hook in.
class_replaceMethod(klass, selector, aspect_getMsgForwardIMP(self, selector), typeEncoding);
整体原理
上面讲了几种消息转发的方法,Aspects主要是利用了forwardInvocation进行转发,Aspects其实利用和kvo类似的原理,通过动态创建子类的方式,把对应的对象isa指针指向创建的子类,然后把子类的forwardInvocation的IMP替成__ASPECTS_ARE_BEING_CALLED__,假设要hook的方法名XX,在子类中添加一个Aspects_XX的方法,然后将Aspects_XX的IMP指向原来的XX方法的IMP,这样方便后面调用原始的方法,再把要hook的方法XX的IMP指向_objc_msgForward,这样就进入了消息转发流程,而forwardInvocation的IMP被替换成了__ASPECTS_ARE_BEING_CALLED__,这样就会进入__ASPECTS_ARE_BEING_CALLED__进行拦截处理,这样整个流程大概结束。
www.jianshu.com/p/0d43db446c5b
人的记忆能力是有限的,分析、建模与解释能力是无限的

