项目中之前有过这样的场景,iOS8系统上的APP,当输入框(textField/textView)处于编辑状态的时候,键盘弹出此时,按下home键进入后台,APP崩溃了。。。
报错如下:
[UIKeyboardLayoutStar release]: message sent to deallocated instance
查阅资料发现,使用MethodSwizzle 实现对数组、字典 等系统方法的安全校验。显然能达到预期效果,但实际发现当键盘显示的情况下 home app 进入后台,再单击app 图标 切换回前台时 发生crash,我的项目原因是替换了NSMutableArray 的objectAtIndex:( NSMutableArray和 NSArray 的objectAtIndex:都有替换,经验证单独替换 NSArray 的objectAtIndex:方法则不会引起crash)需要在build phases中找到Compile Sources,继而找到使用NSMutableArray Swizzle的分类,禁用ARC