swizzle NSArray的objectAtIndex,App就不会出现UIKeyboardLayoutStar
背景
公司新闻app,一个搜索输入框,键盘响应之后,按Home键,app进入后台,再返回前台的时候出现崩溃(iOS8 iphone5s)。
然而在6s iOS10上并不能复现。
用测试妹子的手机复现。控制台打印了下面信息
[UIKeyboardLayoutStar release]: message sent to deallocated instance
网上搜索,发现是由swizzle NSArray的objectAtIndex,造成的UIKeyboardLayoutStar release 问题
项目中确实加入runtime 对数组做可能的越界安全处理。
要么删除掉 swizzle NSArray 的objectAtIndex
要么对runtime文件分类的后边加上了-fno-objc-arc标记
网友评论