JasenHuang
JasenHuang
https://github.com/jasenhuang/ffi.git base on v3.3
@ZebZheng 不是很明白你的意思? Xcode 开一下 Exception Point , Assert 会停留在有堆栈的地方
@ZebZheng 接收 NSSafeNotification 通知,userInfo里可以拿到完整的NSInvocation信息上报
@tyh520life 1:.h .m直接拖进去编译就好 2:不能,bugly是有crash才收集,NSObjectSafe保护了crash,可以通过日志收集到错误
@keirlee you are right, fixed already
@whihail 实际上 交换实例方法 的写法才是正确的,交换类方法是改漏了。 考虑到类继承关系,我们hook的方法有可能在不同子类和父类都有实现,method_exchangeImplementations 会直接修改修改到父类的IMP,多次swizzleInstanceMethod会乱。 可以更新一下 ,参数下 NSObjectSafeTests.m 的测试用例 `@interface Base : NSObject - (void)print:(NSString*)msg; @end @implementation Base - (void)print:(NSString*)msg { NSLog(@"Base obj %@ print say:%@", NSStringFromClass(self.class), msg); }...
@yulingtianxia 实际上你和我说的是同个意思,而且我在上面的回复已经说明了,并没有区分必要。
@yulingtianxia execuse me?
@kiritoxcii would you show the demo code or paste crash stack?
@leo4developer @kiritoxcii actually, it's Assertion failure inside NSObjectSafe because of replaceBytesInRange with range.location == data.length,the default behavior of system api will append bytes to target.change to