【发布时间】:2021-07-01 08:57:18
【问题描述】:
我有从 Firebase 显示数组的 tableview。当我从 tableview 中删除行以从 Firebase 数组中删除值时,我需要。
这是我的代码,但它给了我一条错误消息:
无法将“NSNull”(0x114b66dd0)类型的值转换为“NSArray”(0x114b66448)。 2021-04-05 15:32:20.045614+0200 我的婚礼 [8355:287880] 无法将“NSNull”(0x114b66dd0)类型的值转换为“NSArray”(0x114b66448)。 (lldb)
我是 swift 新手,所以我不熟悉。
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
let guest = guestList[indexPath.row]
refGuests = Database.database().reference().child("userInfo").child(uid!).child("tables").child("guestsOnTable")
refGuests.observe(.value) { (snapshot) in
if let guestsOnTable = snapshot.value as! [String]? {
for i in 0..<guestsOnTable.count{
if guestsOnTable[i] == self.uid {
self.refGuests.child("userInfo").child(self.uid!).child("tables").child("guestsOnTable").child("\(i)").removeValue()
}
}
}
}
self.guestList.remove(at: indexPath.row)
self.guestsOnTableTableView.reloadData()
}
}
【问题讨论】:
-
什么错误信息???
-
@Sh_Khan 无法将“NSNull”(0x114b66dd0)类型的值转换为“NSArray”(0x114b66448)。 2021-04-05 15:32:20.045614+0200 我的婚礼 [8355:287880] 无法将“NSNull”(0x114b66dd0)类型的值转换为“NSArray”(0x114b66448)。 (lldb)
-
您不能从实时数据库的数组中删除单个元素(当然可以,但不是您想的那样)。您将需要读入数组,对其进行修改,然后将其写回。阅读Arrays Are Evil
标签: ios arrays swift firebase firebase-realtime-database