Swift 使用UIAlert删除tableView行时出现SIGABRT错误
我正在尝试使用commit editingstyle函数删除tableView中的一行。当用户删除一行时,我希望显示UIAlertController。 我在没有警报的情况下试过,效果不错。 下面是我的提交编辑样式函数:Swift 使用UIAlert删除tableView行时出现SIGABRT错误,swift,xcode,uialertcontroller,Swift,Xcode,Uialertcontroller,我正在尝试使用commit editingstyle函数删除tableView中的一行。当用户删除一行时,我希望显示UIAlertController。 我在没有警报的情况下试过,效果不错。 下面是我的提交编辑样式函数: func tableView(tableView:UITableView,commit editingStyle:UITableViewCellEditingStyle,forRowAt indexPath:indexPath){ 如果editingStyle==.delete
func tableView(tableView:UITableView,commit editingStyle:UITableViewCellEditingStyle,forRowAt indexPath:indexPath){
如果editingStyle==.delete{
let sheet=UIAlertController(标题:“Diesen Verein löschen?”,消息:“Wollen Sie Diesen Verein für immer löschen?”,首选样式:。警报)
当前(表,动画:真,完成:无)
让action1=UIAlertAction(标题:“Löschen”,样式:。默认,处理程序:{(操作)在
self.deleteClub(at:indexath)
})
让action2=UIAlertAction(标题:“Abbrechen”,样式:。默认值,处理程序:{(操作)在
self.disclose(动画:true,完成:nil)
})
表.添加操作(操作1)
表.添加操作(操作2)
当前(表,动画:真,完成:无)
}
}
这是我的delete函数,但我不认为这是一个错误,因为它在没有警报的情况下工作
func deleteClub(在indepath:indepath处){
let club=clubs[indexPath.row]
guard let managedContext=club.managedObjectContext-else{
返回
}
managedContext.delete(俱乐部)
做{
请尝试managedContext.save()
梅花。移除(位于:indexath.row)
tableViewClub.deleteRows(位于:[indexPath],带:。自动)
}抓住{
打印(“无法删除”)
tableViewClub.reloadRows(位于:[indexPath],带:。自动)
}
}
当控制台崩溃时,是否有错误消息?同样使用ispresent(sheet,动画:true,completion:nil)
调用两次?将您的警报代码从UITableViewCellEditingStyle移动到deleteClub func,然后重试。@aBilal17除了感谢@Larme Oh是的,我删除了它一次,现在它工作了:DFYI,如果您阅读了控制台,您将得到“由于未捕获的异常‘NSInvalidArgumentException’而终止应用程序,原因是:‘应用程序试图以模态方式呈现活动控制器’,这是一个明显的错误。训练自己强制阅读。如果你不理解它们,搜索或询问。但阅读它们是你工作的一部分。