码迷,mamicode.com
首页 > 其他好文 > 详细

runtime MethodSwizzle 实践之 奇怪crash : [UIKeyboardLayoutStar release]: message sent to deallocated instance

时间:2015-03-16 17:42:49      阅读:332      评论:0      收藏:0      [点我收藏+]

标签:

 

情景: 使用MethodSwizzle 实现对数组、字典 等系统方法的安全校验。显然能达到预期效果,但实际发现当

键盘显示的情况下  home app 进入后台,再单击app  图标 切换回前台时 发生crash :

 [UIKeyboardLayoutStar release]: message sent to deallocated instance

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

整个工程都在ARC下 构建,很奇怪,而且必须。

 

信息:

http://huang.sh/2015/02/%E4%B8%80%E4%B8%AA%E5%A5%87%E6%80%AA%E7%9A%84crash-uikeyboardlayoutstar-release/

http://code4app.com/ios/DurexKit%E5%AE%89%E5%85%A8%E5%B7%A5%E5%85%B7%E5%8C%85/5325b421933bf0463d8b49ec

 

其中都有提到DurexKit  原理都是一样的,上面提到原因是替换了 NSArray的objectAtIndex: 方法,

不过在我的项目原因是替换了NSMutableArray 的objectAtIndex:( NSMutableArray和 NSArray 的objectAtIndex:都有替换,单独替换 NSArray 的objectAtIndex:方法则不会引起crash) 

 

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

有提到:技术分享。。貌似 arc 有时也不一定可靠。

 

 

 

 

runtime MethodSwizzle 实践之 奇怪crash : [UIKeyboardLayoutStar release]: message sent to deallocated instance

标签:

原文地址:http://www.cnblogs.com/tangbinblog/p/4342366.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!