美文网首页IOS开发者学习笔记
-[UIKeyboardLayoutStar release]:

-[UIKeyboardLayoutStar release]:

作者: iOSPeter | 来源:发表于2016-10-12 10:41 被阅读1106次

    背景: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>

    我在<图1>分类的后边加上了-fno-objc-arc标记,如下图:

    <图2>

    然后再运行代码问题解决。当我把-fno-objc-arc去掉问题再次出现。

    不过在此过程我遇到个奇怪的问题:这几个分类文件我是在.pch文件中导入的.h,我把导入的.h注释之后 ,按照<图2>编译发现问题也是可以解决的。就是说这几个文件.h在工程中有没有用到,只要如<图2>编译就不会出现标题上描述的那个问题。

    如果有朋友我提到的这个问题,可以一起交流。

    相关文章

      网友评论

      • 我去敲代码:我最近也碰到类似问题。在iOS10以下版本运行时,点击过键盘再按home键就会出现[UIKeyboardLayoutStar release]: message sent to deallocated instance 的问题。看了你的文章,我把使用Swizzle的分类删掉貌似就没问题了。😊

      本文标题:-[UIKeyboardLayoutStar release]:

      本文链接:https://www.haomeiwen.com/subject/prciyttx.html