此错误的解决方案:
我从我的实现中移除了方法。虽然它有效,但我仍然很想知道为什么当文档提到它们是为了协同工作时,下面的方法对我的实现不起作用。
func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
return true
}
原始问题:
以下代码用于删除行以及删除coredata上的记录。到现在为止还挺好。但是当我尝试离开包含此tableview视图的视图时,我发现崩溃仅,而其中一个行的“删除幻灯片”按钮处于活动状态。
如果要删除的幻灯片按钮未激活,我尝试关闭视图,它可以正常工作,不会崩溃。
我收到以下错误。
class AppDelegate: UIResponder, UIApplicationDelegate { error thread 1:EXC_BAD_ACCESS
我评论了方法中的所有内容,但即使内部没有代码,它仍然会崩溃。
我是否在方法的实现中遗漏了某些内容,或者没有正确使用它?
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if(editingStyle == .Delete ) {
// let concreteItemToDelete = concreteItems[indexPath.row]
// managedObjectContext?.deleteObject(concreteItemToDelete)
// self.fetchLog()
// mainTableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
}
}
调试控制台:
答案 0 :(得分:1)
当您尝试关闭时,似乎已从内存中释放了上一个View。当您滑动删除时,看起来垃圾收集器会清除上一个视图。
我有类似的问题,具有相同的EX_BAD_ACESS且没有堆栈跟踪。在我的情况下,everthing一直工作,直到我第三次执行解雇。我正在使用PageManu,并在名为controller2的视图中从tableview执行segue。
我在'main'ViewController中添加了这个(谁将其他视图添加到PageMenu)并且效果很好:
self.addChildViewController(controller1)
self.addChildViewController(controller2)
控制器1和2是我在页面菜单上滑动的视图。现在,似乎垃圾收集器在我回来时不会取消分配视图。