试图的tableView删除行时应用与SIGABRT错误crashs

我的应用程序崩溃,当用户试图从UITableView中,并在调试器中删除一行,我得到了SIGABRT错误。

这里是我的代码删除:

- (void) tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { [[self displayedObjects] removeObjectAtIndex:[indexPath row]]; // Animate deletion NSArray *indexPaths = [NSArray arrayWithObject:indexPath]; [[self tableView] deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade]; //[[self tableView] deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]]; } }

--------------解决方案-------------

请问您的[self displayedObjects]的项目数封面[indexPath row] ? 例如,你的[self displayedObjects]只有5个项目,但要removeObjectAtIndex:6

我用我的代码进行比较,看你在哪里错了。

//Removes From Table
[favorites removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:[NSMutableArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];

最喜欢的是我的数组。 我想你会需要做的就是改变这一行:

[[self displayedObjects] removeObjectAtIndex:[indexPath row]];

首先,把该行紧接本一前:

[[self tableView] deleteRowsAtIndexPaths:indexPaths
withRowAnimation:UITableViewRowAnimationFade];

然后改变self到你的数组的表格中显示的名称。

也! 很重要

确保表格中显示的数组是一个NSMutableArray不是一个NSArray

有了一个NSArray,你不能改变(增加或删除)值。 然而,与NSMutableArray就可以了,所以一定要确保你没有显示NSArray

如果我没有记错的话,你调用的代码:

[[self tableView] deleteRowsAtIndexPaths:indexPaths
withRowAnimation:UITableViewRowAnimationFade];

从承诺删除事件中。 我相信所有你需要做的就是更新从您的备份存储“的tableView:commitEditingStyle:forRowAtIndexPath:”法。 删除已经提交。 您可能还需要事后刷新表视图也请务必标明你的表视图允许更新。

尝试注释掉所有这些代码,并告诉我们发生了什么:

// Animate deletion
NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
[[self tableView] deleteRowsAtIndexPaths:indexPaths
withRowAnimation:UITableViewRowAnimationFade];

我得到了另一个问题的帮助。 而问题是,对象将来自阵列由于在问题被删除,但随后从表视图删除行前,numberOfRowsInSection再次然后再次加载从磁盘阵列和得到删除前的数目称为我的阵列的负载。 我把一个破发点的numberOfRowsInSection,现在是全部清除。

分类:IOS 时间:2015-03-15 人气:3
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.627 (s). 10 q(s)