New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
使用aspects时 如果controller自己实现了forwardInvocation不崩溃 #132
Comments
https://github.com/bang590/JSPatch/blob/master/JSPatch/JPEngine.m#L422-L428
就不会崩溃,但 JSPatch 和 Aspects 对这个类里方法的替换会因为先后顺序导致其中一个库不生效。 |
多谢 bang,不过这段改动只是加了个判断,其实还是会崩溃的 |
加了判断后 不崩溃了,但是没有达到目的,我也查出来了,之前我那个 Viewdidload问题,因为我用的是你平台的 SDK,没有代码,所以找不到原因,后来换成jspatch源码,发现我也崩溃在这里。。项目中 没有使用 aspects,但是接入的第三方可能有用到。。有什么办法嘛? |
我除非 在 所有第三方调用的 后边 来调用 jspatch,如果这样,第三方库有些功能会失效。 |
@askday 这个崩溃是另一个原因了,aspects替换的loadView方法走到了JSPatch的逻辑里,导致没正常调用 |
@bang590 SDK 可以增加 一下判断嘛?我用的是你平台,嘿嘿 |
可以借鉴aopaspect库下,这个使用的时候跟aspect不冲突,通过保存当前class对象来切入,多谢bang及时回复。 |
我项目中使用了aspects, 前天更新的类库,在这里是会崩溃 |
原来是因为aspects库的原因,我找了半天...不知道有没有什么稳妥的办法 |
static void JPForwardInvocation(id slf, SEL selector, NSInvocation *invocation) 改成 我在项目中使用了,JSPatch 和 Aspects 两个都生效了, |
加了个判断 貌似没什么效果 |
我也遇到这个问题了,项目里没有Aspects,加了@WisdomZhao 给的判断可以解决问题 |
aspects问题最新代码已解决 |
NSMethodSignature *methodSignature = [slf methodSignatureForSelector:origForwardSelector];
NSInvocation *forwardInv= [NSInvocation invocationWithMethodSignature:methodSignature];
被打补丁对象如果自己实现了forwardInvocation,那么这里的执行是正确的,没有实现就崩溃了
是不是说明methodSignature没有获取到NSObject中相关的方法,如何能获取NSObject的呢?
The text was updated successfully, but these errors were encountered: