tableView滑动删除返回错误

测试提了一个bug,说滑动cell显示删除按钮的状态下,点击返回,执行了“popviewcontroller”,竟然崩溃了,如果没有滑动显示删除按钮,返回不会有任何问题!

我试了下在模拟器和iPhone6以上的手机上没问题,iPhone4和iPhone5都蹦了,很奇怪!接上手机也没有打印任何日志,直接carsh到大家觉得最恶心的main文件那边了,仅显示了一个“坏得地址”。

既然是滑动到删除状态,也就是Editing状态才会蹦,那我就消失的时候设置成非编辑状态试试吧,果然还真的好了!但是有点“知其然不知其所以然”!百度了下转载以下博文大伙可以看看哈!

(虽然偶第一时间解决了问题,但是感觉有点小失误,在没有报错的情况下,没有尝试去勾选“僵尸对象”的监听排查错误,下次要注意了)


转载 -- http://blog.sina.com.cn/s/blog_6b1e4a060102v0br.html

这几天做的项目中需要用到tableView滑动删除这个功能,就很习惯的用tableView的两个数据源方法

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{

return YES;

}

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath;

结果写完后,滑动删除掉一行之后点击导航栏的返回按钮居然出现了崩溃现象,而且崩溃是出现在跳回到之前的界面之后,我想着,不可能啊,之前也不是没有这样用过,之前都不出问题,怎么现在出问题了,并且崩溃之后也没有打印出相关的日志,也没有提示信息,直接到了 main 函数里,我想这样的崩溃大家是最头痛的,毫无头绪,虽然之后在偶然的情况下,我把上面的第一个方法给注释掉了,后来也就不崩溃了,问题得到了解决,今天,任务不算很重,我重新想想,越想越要把这个问题给彻底的搞明白,于是重新再回到这个demo里面,我心里想,一般直接跳到main函数里的并且不打印任何日志的崩溃应该和内存有关系(这只是一种直觉,我也不太确定),于是我就沿着这个不太明确的思路慢慢找问题,通过xcode自带的僵尸方法,这样一来就会有打印错误提示了,具体方法如下:

保存后,重新运行程序,再重复之前的操作,bug 出现了,右下角也有打印出日志了,问题如下:

[HistoryViewController tableView:canEditRowAtIndexPath:]: message sent to deallocated instance 0x10930c140

也就是说,tableView:canEditRowAtIndexPath这个方法有问题,那我就纳闷儿了,这个方法怎么可能会有问题,难怪我之前注释掉了这个方法就没问题了,果然是这里有问题,知道了问题针对它解决掉也就不会是什么难事儿了,我初步怀疑是 return YES 的问题,

于是,我在函数里加了这样几行代码

- (void)viewWillDisappear:(BOOL)animated {

[super viewWillDisappear:animated];

[self.bgTableView setEditing:NO];

}

然后再重新运行,重复之前的操作,问题解决了,perfect,,,,

虽然问题解决了,但是还是觉得,canEditRowAtIndex 这个方法应该不会有问题,于是我再 ios 6 的模拟器下运行程序,重复操作没问题(当然注释掉viewWillDisappear方法),后来到网上找了好多资料,很大神都说可能是苹果自身的问题,ios7 才有这个问题,ios6 以及以下不会出现这种问题,

至此,问题得到解决,以上列出了两种解决方案:1,删掉canEditRowAtIndexPath这个方法不用,不会出问题;

2,加上上面说的 viewWillDisappear 方法也可以解决问题;但是我个人推荐第二种方法,虽然第一种方法也是可以解决问题的,但是个人还是觉得这两个方法配套使用比较好。

最终总结出问题 可能是在 canEditRowAtIndexPath 这个方法里设置了YES然后返回的时候没有把它设置成 NO 所以报错,ios6会自动设置成NO,iOS7 就手动设置成 NO也可以。所以以后无论什么版本,我们都加上viewWillDisappear手动设置 editing 这个属性为NO 这样确保万无一失。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容

  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 4,628评论 1 9
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,016评论 4 62
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,424评论 25 707
  • 1、禁止手机睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa阅读 1,114评论 1 6
  • 关于创业的创意QA 创业的目的 YC 课程从创意,团队,产品,执行4个角度讲解了创业,提到很多人没有想清楚创业的目...
    Julietthebest阅读 285评论 0 0