iOS9 bug: 极容易崩溃的bug

苹果iOS9推出也有一段时间了,本来以为应该很稳定吧,但事实却不是这样。一日将iOS 8上运行得很良好的App在一台iOS 9.1设备上调试,却发现了很奇葩的问题:不能释放键盘。

跟踪调试,发现只要代码中一运行到resignFirstResponder(或者是endEditing)方法调用的地方,程序就崩溃。出现神一般的BAD EXEC错误。

将这句代码注释,一切OK,但是你就无法收起软键盘了。

在网上搜罗答案无数,只有一个答案是靠谱的:

http://www.dahuatu.com/1LypEbbMmn.html

接下来,让我们来演示一下这个Bug,你就会明白让一个在iOS 8上运行正常的App崩溃是如此的容易。

新建工程。在View Controller上拖一个TextField和Button。为Button创建一个IBAction连接:

- (IBAction)freekb:(id)sender {

[self.view endEditing:YES];

}

其它代码什么都不要写。运行程序(在iOS 9.1模拟器或设备上),点击TextField,键盘弹出,点击Button,键盘收起。一切OK,没有任何问题。

现在我们来看怎么弄死它。实现一个Category,随便你叫它什么(比如test):

@implementation UIViewController(test)

- (void)dealloc{

}

@end

如你所见,只定义了一个空的dealloc方法,方法中什么代码也不用写。

运行程序(在iOS 9.1模拟器或设备上),点击TextField,键盘弹出,点击Button,键盘收起。程序崩溃!删除dealloc方法,再次运行,一切正常。

Ok,演示完毕,谢谢大家!

时间: 2024-11-08 19:18:18

iOS9 bug: 极容易崩溃的bug的相关文章

IOS9.0中hash值的bug与解决方案

事件起因 事情是这样的:产品上线发布,突然出现了问题.运营Gg过来反应,当场给露珠演示,运营同事的手机是iphone,bug确实是存在的.奇怪的是露珠用了其他iphone手机(借别人的,露珠的是吊死安卓机),却没有发现这个问题.仔细询问,同事说他最近刚刚升级的ios9,于是问题最初定位在操作系统上.接下来检查代码,发现运行正常,逻辑也没错.问题就卡到这里了.没办法,线上问题,fiddler替换本地脚本调试,一级一级alert,从项目文件到底层库,最后定位到了backbone.查看backbone

freecms编程中几种可能导致tomcat崩溃的bug

这里说的bug,不是指的freecms本身的bug,是使用freecms时,由于自己的大意可能挂掉tomcat,甚至内存爆掉以后,连mysql, nginx等也会挂掉的bug.Tomcat挂了后,会出现502错误 1. mybatis的mapper.xml没有部署好 2. 数据库中free_operbutton错误,其实这个bug导致tomcat被爆,也暴露了freecms的鲁棒性不高.

修复ext4日志(jbd2)bug( Ext4 文件系统有以下 Bug)

from:http://blog.donghao.org/2013/03/20/%E4%BF%AE%E5%A4%8Dext4%E6%97%A5%E5%BF%97%EF%BC%88jbd2%EF%BC%89bug/ 生产上报来了内核bug:mysql在做reset master时内核整个panic了. DBA同学非常热心的帮忙找到了重新步骤:就是一个地雷一样的文件,只要open它,再fdatasync,kernel就panic.从panic的代码位置看,就是 jbd2_journal_commit

php导出表格两种方法 ——PhpExcel的列子

php常用的导出表格有两种方法,第一种是输出表格,这种方法打开的时候有警告提示,一般导出表格会用phpexcel,这个导出比较灵活,而且还可以设置表格的样式. 第一种导出例子 /** * 执行导出 * @param unknown $result 数据源 */ function Excel($result,$fileName='',$Key=''){ $fileName = iconv('utf-8', 'gbk',$fileName); header("Content-type:text/ht

【转】小议Bug敏感度---Bug敏感度的故事(一)

在测试圈中,相信大家对“Bug敏感度”这一词并不陌生,但是Bug敏感度具体是指什么呢,本文对此关键词进行解读的基础上,对其与软件质量的关系,影响的关键因素,如何提高测试人员的bug敏感度进行分享.(--续集) Bug敏感度的故事 [测试经理的评价] 在一次绩效评价中,A主管对某位测试工程师的评价如下: 本季度完成了模块A.模块B.模块C的系统测试工作,设计了1200用例,提交了500+Bugs,严重Bug占40%,Bug数占测试团队(同期参与项目有4人)的35%,其突出的Bug敏感度,对某项目软

IE6,IE7,IE8 css bug搜集及浏览器兼容性问题解决方法汇总

http://www.jb51.net/css/85640.html 断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 1:li边距“无故”增加  任何事情都是有原因的,li边距也不例外.  先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着头脑,仔细“研究”发现是由于其低级元素ul的paddi

日常bug及解决方法记录

工作中经常会遇到一些Bug,时间长了有时候就忘记了,这样不好. 特地在这加一个随笔,把以后出现的有价值一点的bug记录在这里,提醒自己,也可以给刚入门的同学一些参考,避免这些坑. 1:界面已经销毁,代理回调会导致崩溃的bug 场景: A Push to B 在B中发送了一个异步请求,请求完成之后执行 if(self.delegate && [self.delegate respondsToSelector:@selector(requestMessageFinish:)]) { [self

Alpha Version Release Of Teamwork: Appendix 1 BUG BASH

在为期一周的发布周中,我们将app本身最后的细节完善,功能代码到位,UI不断改进和优化,团队在开始准备发布之前,对整个APP进行了一次BUG检查,每个人都部署了app在自己的android设备上进行测试.一共发现了以下的bug. bug等级:高. bug位置:android代码. 现象:加载此页面程序崩溃弹出. 原因分析:图标太卡导致图片加载问题. 解决:缩小图片容量,修改加载函数. bug等级:中. bug位置:android代码. 现象:某些菜品价格显示为-1. 原因分析:爬虫对于一些未爬取

项目bug的修正

这几个月来,大部分业余时间,都花在阅读软件工程和编译原理方面的书籍上了.软件工程方面的书,包括软件需求.风险管理.敏捷建模,系统设计,软件项目管理,还有一些类似于的沉思录书籍等. 在这些书中,都只是讲了如何让项目健康发展,最后成功的提交一个产品.尽管它们都是从不同的角度,用不同的方法去完成同样的事.但它们几乎都支持这样的观点:计划+修正计划(不但设计是迭代的,计划也是迭代的).用其中一个作者的话说,伤害你的,不是那些你没有考虑完整的,而是你根本没去考虑的事情. 然而,几乎没有一本书里,讲到关于消