-[UIKeyboardLayoutStar release]:

2016-11-01  本文已影响0人  39Coding

使用MethodSwizzle 实现对数组、字典 等系统方法的安全校验。显然能达到预期效果,但实际发现当键盘显示的情况下  home app 进入后台,再单击app  图标 切换回前台时 发生crash :

[UIKeyboardLayoutStar release]: message sent to deallocated instance

UIKeyboardLayoutStar 是键盘上的布局的视图吧,

整个工程都在ARC下 构建,很奇怪

其中都有提到DurexKit  原理都是一样的,上面提到原因是替换了 NSArray的objectAtIndex: 方法,不过在我的项目原因是替换了NSMutableArray 的objectAtIndex:( NSMutableArray和 NSArray 的objectAtIndex:都有替换,单独替换 NSArray 的objectAtIndex:方法则不会引起crash)

解决方案:给 添加非ARC 支持,并改写实现

@autoreleasepool { ... }

上一篇下一篇

猜你喜欢

热点阅读