Swift 删除UITableView的最后一行时崩溃
当我删除UITableView的最后一行时,我会在没有其他消息的情况下收到一个lldb错误。这是我的代码:Swift 删除UITableView的最后一行时崩溃,swift,uitableview,lldb,Swift,Uitableview,Lldb,当我删除UITableView的最后一行时,我会在没有其他消息的情况下收到一个lldb错误。这是我的代码: func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? { if tableView == sendTableView { return [] } else { //delet
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错误??那你还没造这个东西?如果您查看构建日志,则会看到其他消息。谢谢您的建议!但这并不能解决问题。