背景:iOS输入框处于编辑状态,按下Home键退入到后台,app闪退。有很多朋友都遇到过(可以搜一下),比如:http://www.zhihu.com/question/34163860?sort=created
解决途径:
1. 首先我采用注释的方式排查了自己写的页面上的代码,没发现什么问题。
2. 寻找万能的度娘,把错误信息贴进去,搜到几个答案,大部分类似于这篇文章:http://huang.sh/2015/02/一个奇怪的crash-uikeyboardlayoutstar-release/
通过分析途径2,我猜测问题跟运行时有一定关系,但我并没有使用库DurexKit,不过我有通过建立分类使用Swizzle来动态拦截NSArray、NSMutableArray、NSDictionary、NSMutableDictionary的方法。
按照文章里的方式,我在build phases中找到Compile Sources,继而找到使用Swizzle的分类。如下图:
我在<图1>分类的后边加上了-fno-objc-arc标记,如下图:
然后再运行代码问题解决。当我把-fno-objc-arc去掉问题再次出现。
不过在此过程我遇到个奇怪的问题:这几个分类文件我是在.pch文件中导入的.h,我把导入的.h注释之后 ,按照<图2>编译发现问题也是可以解决的。就是说这几个文件.h在工程中有没有用到,只要如<图2>编译就不会出现标题上描述的那个问题。
如果有朋友我提到的这个问题,可以一起交流。