[英]EXC_BAD_ACCESS When Trying To Delete TableView Section
我有一个包含多个部分的表格视图。 在某个时候,我想从 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];
这是在我的标题自定义视图子类中完成的。 在deleteCell:
方法中,我调用了一个委托方法(委托是拥有 tableview 的视图 controller)。 在委托方法的实现中,我尝试删除这样的部分(部分是一个 int):
[statsTable deleteSections:[NSIndexSet indexSetWithIndex:section] withRowAnimation:UITableViewRowAnimationAutomatic];
在这一行,我得到一个 EXC_BAD_ACCESS。 奇怪的是,发生这种情况时 Xcode 也会崩溃,所以我看不到 BAD_ACCESS 的原因。 如果有人知道为什么会这样,将不胜感激您的帮助。
谢谢,
编辑::找到解决方案,具有表视图的 vc 必须成为第一响应者才能允许您从表视图中删除某些内容。 谢谢
UIMenuController 有一个 delete MenuItem,它发送 delete: 消息。 我建议使用它而不是用你自己的删除复制它。
顺便说一句,您可以通过单击“管理方案”非常轻松地在 Xcode 4.3 中启用 NSZombies(您可以通过单击具有当前方案/设备的栏来访问它,如下面的屏幕截图所示...)
然后,在弹出的屏幕中,单击编辑,您应该会看到这个...
选中“启用僵尸对象”,您就可以使用 go。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.