使用评论删除帖子时应用崩溃 - swift

时间:2016-11-16 11:32:36

标签: ios swift uitableview cell

我有一个可以添加帖子的应用。我最近添加了删除帖子的功能,但是当用户删除带有评论的帖子时 - 应用程序崩溃(但帖子仍然被删除)。

奇怪的是,我没有在用户删除帖子的tableview中收到错误?

我有feedTableViewController(用户删除帖子的位置)和commentTableViewController,人们可以看到帖子的评论。

即使用户删除了feedTableViewController中的帖子,xcode也会在此行代码的commentTableViewController中显示错误:

FIRDatabase.database().reference().child("feed-items").child(self.dataGotten).child("likesForPost").observeEventType(.Value, withBlock: { (snapshot:FIRDataSnapshot!) in
  if let count: UInt? = snapshot.childrenCount {
     if count! - 1 == 1 {
         self.likesButton.setTitle("\(count! - 1) LIKE", forState: .Normal)
     } else if count! - 1 == 0 {
         self.likesButton.hidden = true
     } else {
         self.likesButton.setTitle("\(count! - 1) LIKES", forState: .Normal)
     }
  }
})

你可能会看到上面的代码显示了帖子有多少喜欢 - 所以它与评论无关?删除带有赞的帖子时,该应用不会崩溃。当删除带评论的帖子时,应用程序崩溃了。有人知道如何解决这个问题吗?

这是在我的应用中删除帖子的方式:

func deletePost(cell: updateTableViewCell) {

  let alertController = UIAlertController(title: "Slet", message: "Vil du slette dette?", preferredStyle: .Alert)

   let confirmAction = UIAlertAction(title: "Slet", style: .Default) { (_) in

      FIRDatabase.database().reference().child("feed-items").child(cell.pathDB).removeValue()

      self.tableView.reloadData()
  }

  let cancelAction = UIAlertAction(title: "Annuller", style: .Default) { (_) in       
  }

  alertController.addAction(confirmAction)
  alertController.addAction(cancelAction)

  self.presentViewController(alertController, animated: true, completion: nil)
}

Crashing line

如果您需要,将提供更多代码: - )

1 个答案:

答案 0 :(得分:0)

这应该有效

FIRDatabase.database().reference().child("feed-items").child(self.dataGotten).child("likesForPost").observeEventType(.Value, withBlock: { (snapshot:FIRDataSnapshot!) in

 if (snapshot.hasChildren()) {
  if let count: UInt = snapshot.childrenCount as UInt {
     if count - 1 == 1 {
         self.likesButton.setTitle("\(count - 1) LIKE", forState: .Normal)
     } else if count - 1 == 0 {
         self.likesButton.hidden = true
     } else {
         self.likesButton.setTitle("\(count - 1) LIKES", forState: .Normal)
     }
  }
 }
})