gpt4 book ai didi

ios - Swift 3 Firebase 更新代码转换 - 排序

转载 作者:行者123 更新时间:2023-11-30 13:03:04 26 4
gpt4 key购买 nike

不久前,我在 Udemy 上注册了一门类(class),内容是如何使用 Swift 和 Firebase 创建聊天应用程序,只是因为我想深入了解这一切是如何工作的。

但是,一周后我完成了类(class)。这是几个月前的事,从那时起 - Firebase 和 Swift 都有更新,我目前正在努力将一些旧代码转换为新代码。

这是我目前正在努力解决的代码:

func loadRecents() {

firebase.child("Recent").queryOrdered(byChild: "userId").queryEqual(toValue: FIRAuth.auth()!.currentUser?.uid).observe(.value) { (snapshot:FIRDataSnapshot) in

self.recents.removeAll()

if snapshot.exists() {

if let values = snapshot.value as? [String:AnyObject] {

let sorted = (values as! NSArray).sortedArray(using: [NSSortDescriptor(key: "date", ascending: false)])


for recent in sorted {

self.recents.append(recent as! NSDictionary)
self.conversationTableView.reloadData()

}

}

self.conversationTableView.reloadData()

}

self.conversationTableView.reloadData()

}

self.checkUnread()

}

所以这只是在 tableView 中显示所有“聊天”的代码,我只是通过日期对其进行排序,其中升序为 false。

我所做的更改只是将旧的 snapshot.value.allValues 转换为 snapshot.value 作为? [字符串:AnyObject]。查询按登录帐户(FIRAuth.auth().currentUser!.uid)排序。

但是,我非常确定此代码已被弃用,因为每次构建此代码时都会出现错误。我知道它在以前的版本中有效。

这是错误:

Thread 1: EXC_BAD_INSTRUCTION

如果有必要,并且碰巧我完全搞乱了当前的代码(可能是),这里是完整的旧代码:

 func loadRecents() {
firebase.child("Recent").queryOrderedByChild("userId").queryEqualToValue(FIRAuth.auth()!.currentUser!.uid).observeEventType(.Value, withBlock: {
snapshot in

self.recents.removeAll()

if snapshot.exists() {

let sorted = (snapshot.value!.allValues as NSArray).sortedArrayUsingDescriptors([NSSortDescriptor(key: "date", ascending: false)])

for recent in sorted {

self.recents.append(recent as! NSDictionary)

//add functio to have offline access as well, this will download with user recent as well so that we will not create it again

firebase.child("Recent").queryOrderedByChild("chatRoomID").queryEqualToValue(recent["chatRoomID"]).observeEventType(.Value, withBlock: {
snapshot in
})

}

}

self.tableView.reloadData()
})

self.checkUnread()

}

关于如何绕过/修复这个问题有什么想法吗?非常感谢您的帮助。

最佳答案

你必须使用Dictionary()

如果让values = (snapshot.value) as!字典

关于ios - Swift 3 Firebase 更新代码转换 - 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39705363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com