ios - 更新日期排序替代方案

标签 ios swift firebase firebase-realtime-database swift3

我目前正在尝试更新几个月前购买的 Udemy 类(class)的代码,该类(class)在 Swift 2.2 版本中完全运行。然而,我对这个特定的功能有问题,它实际上只是排序和显示最近的聊天(带预览)。

这是代码:

 func loadRecents() {
        firebase.child("Recent").queryOrderedByChild("userId").queryEqualToValue(backendless.userService.currentUser.objectId).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)
                    firebase.child("Recent").queryOrderedByChild("chatRoomID").queryEqualToValue(recent["chatRoomID"]).observeEventType(.Value, withBlock: {
                        snapshot in
                    })

                }

            }

            self.tableView.reloadData()
        })

    }

我在这里收到错误:

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

我相信 sortedArrayUsingDescriptors 已被弃用,但我仍然不确定。什么可以替代当前的代码?

提前致谢!

更新:

这是我收到的错误:

THread 1: EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP, subcode=0x0)

最佳答案

问题的具体答案:什么是替代(在 Swift 3 中):

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

此外,发布的代码基本上可以工作 - 尽管 forcentre insorted 部分内的代码对于 Swift 3 格式不正确。

该部分中的最近[“chatRoomID”]可能是一个问题,因为排序中的数据可能不是字符串 - 它们可能是字典。这取决于您的 Firebase 结构。

最后,减少对 NSSortDescriptors 等的依赖并以更快速的方式完成它可能是一个好主意。

查看我对您之前问题的回答

Swift 3 Firebase update code convertion - sorting

关于ios - 更新日期排序替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39770489/

相关文章:

android - 无法将数据存储到Firebase数据库中,并且在运行期间没有错误或警告

c# - 连接到 Windows 上由 xcuitrunner 启动的 iOS WebDriverAgent session

ios - NSURLConnection sendSynchronousRequest 似乎挂起

ios - Swift - View 不规则形状的阴影

ios - 如何将文本文件用作数据库?

ios - 在 Swift 中使用 Hello World 程序的“NSInvalidArgumentException”

python - 从另一个 Cloud 项目调用 Firestore 数据库显示 "Permission Error"

java - Firebase 身份验证 - 显示用户信息

iOS订阅: How to handle INTERACTIVE_RENEWAL notification 10 minutes after INITIAL_BUY?

ios - 将每个 ChildViewController 上的数据传递到 UIPageViewController 上的下一个 ChildViewController