iphone - 尝试删除 TableView 部分时的 EXC_BAD_ACCESS

标签 iphone objective-c ios xcode uitableview

我有一个包含多个部分的表格 View 。在某个时刻,我想从 tableView 中删除一个部分。为此,我在标题上有一个长按手势,长按时我会调出一个 UIMenuController,如下所示:

UIMenuController *deleteMenu = [UIMenuController sharedMenuController];
UIMenuItem *delete = [[UIMenuItem alloc] initWithTitle:@"Delete"     action:@selector(deleteCell:)];
[deleteMenu setMenuItems:[NSArray arrayWithObject:delete]];
[deleteMenu update];
[deleteMenu setTargetRect:CGRectMake(0, 0, 320, 460) inView:self.superview];
[deleteMenu setMenuVisible:YES animated:YES];

这是在我的标题的自定义 View 子类中完成的。在 deleteCell: 方法中,我调用委托(delegate)方法(委托(delegate)是拥有 TableView 的 View Controller )。 在委托(delegate)方法的实现中,我尝试像这样删除一个部分(部分是一个 int):

[statsTable deleteSections:[NSIndexSet indexSetWithIndex:section] withRowAnimation:UITableViewRowAnimationAutomatic];

在这一行,我得到一个 EXC_BAD_ACCESS。奇怪的是,当这种情况发生时,Xcode 也会崩溃,所以我无法看到 BAD_ACCESS 的原因。如果有人知道为什么会发生这种情况,我们将不胜感激您的帮助。

谢谢,

编辑::找到解决方案,具有 TableView 的 vc 必须成为第一响应者才能允许您从 TableView 中删除某些内容。谢谢

最佳答案

UIMenuController 有一个删除MenuItem,它发送delete: 消息。我建议使用它,而不是通过您自己的删除来复制它。

顺便说一句,您可以通过单击“管理方案”轻松地在 Xcode 4.3 中启用 NSZombies(您可以通过单击具有当前方案/设备的栏来访问它,如下面的屏幕截图所示...) enter image description here

然后,在弹出的屏幕中,单击“编辑”,您应该会看到这个...

enter image description here

选中“启用僵尸对象”就可以了。

关于iphone - 尝试删除 TableView 部分时的 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10001241/

相关文章:

iphone - 如何更改sectionIndexTitlesForTableView 字母的颜色?在iphone上可以吗?

ios - 将双数组添加到 nsmutablearray

iphone - 一台 iOS (Iphone/iPad/iPod Touch) 设备有多少内存?

ios - 在 objective-C 中比较 ios 中的多个图像

ios - 锁屏 iPod 控制不适用于 Spotify 音乐播放器

ios - Swift 2 IOS 9 = clang : error: linker command failed with exit code 1 (use -v to see invocation)

ios - 如果我创建个人帐户而不是公司帐户,是否可以让多个开发人员测试我的 iPhone/iPad 应用程序?

ios - 如何制作一个字符串数组(字符串有json数据)

objective-c - Google+ iOS API 包装器

iphone - ios 中的 Twitter 框架帐户配置?