Swift 删除UITableView的最后一行时崩溃

Swift 删除UITableView的最后一行时崩溃,swift,uitableview,lldb,Swift,Uitableview,Lldb,当我删除UITableView的最后一行时,我会在没有其他消息的情况下收到一个lldb错误。这是我的代码: func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? { if tableView == sendTableView { return [] } else { //delet

当我删除UITableView的最后一行时,我会在没有其他消息的情况下收到一个lldb错误。这是我的代码:

func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]?  {
    if tableView == sendTableView {
        return []
    } else {
        //delete row
    let deleteRow = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "Delete" , handler: { (action:UITableViewRowAction!, indexPath:NSIndexPath!) -> Void in
        self.oId = globalClass.messageObjects[indexPath.row].objectId!!
        self.messageToDelete = globalClass.messageObjects[indexPath.row]["fromFriend"] as! String
        globalClass.messageObjects.removeAtIndex(indexPath.row)
        self.myMap.removeAnnotation(self.pinAnnotationArray[indexPath.row])
        self.pinAnnotationArray.removeAtIndex(indexPath.row)
        self.messageTableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Fade)
        self.deleteMessage()
    })
        //get directions
...
        return [deleteRow,getDirections]
    }
}


//delete message
func deleteMessage() {
        _ = PFQuery(className:"Messages")
        let query = PFQuery(className:"Messages")
        query.getObjectInBackgroundWithId(oId){ (object: PFObject?, error: NSError?) -> Void in

            if error == nil && object != nil {
                    if self.messageToDelete == PFUser.currentUser()?.username {
                        object!.deleteInBackgroundWithBlock({ (Bool, error) -> Void in
                    })
                 } else {
                    let wanted:PFObject = object as PFObject!
                        if wanted["wanted"] as! Bool == true {
                            if self.newMessages.count > 1 {
                                self.newMessages.removeLast()
                                self.newMessagesNumber.text = "\(self.newMessages.count)"
                            } else {
                                self.newMessages = []
                                self.newMessagesNumber.hidden = true
                            }
                            wanted["wanted"] = false
                            wanted.saveInBackgroundWithBlock{(success, error) -> Void in
                                if success == false {
                                } else {
                                    let currentInstallation:PFInstallation = PFInstallation.currentInstallation()
                                    currentInstallation.badge = self.newMessages.count
                                    currentInstallation.saveEventually()
                                }
                            }
                        }
                }
            }
    }
}

对象在崩溃之前被删除,UITableView似乎被重新加载。什么会导致此崩溃?

像这样更新代码,使其工作得更好-

let deleteRow = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "Delete" , handler: { (action:UITableViewRowAction!, indexPath:NSIndexPath!) -> Void in

    self.messageTableView.beginUpdates()

    //your code here

    self.messageTableView.endUpdates()
})

那么,异常断点捕获了什么异常?当我添加异常断点时,日志中根本没有任何内容。那么你怎么知道它崩溃了呢?那么。你见过应用停止运行吗?嗯,事情就是这样。异常断点不会将任何内容打印到日志中。请稍候!你得到一个lldb错误??那你还没造这个东西?如果您查看构建日志,则会看到其他消息。谢谢您的建议!但这并不能解决问题。