【问题标题】:Swift 4 and Core Data, how do I sort fetch request?Swift 4 和 Core Data,我如何对获取请求进行排序?
【发布时间】:2020-08-18 01:12:14
【问题描述】:

我有一个核心数据有 500 条记录的游戏。每条记录都有一个id。它们在 1 到 500 之间都是唯一的。

在 Swift 4 或 5 中,如何对这个 fetch 请求的结果进行排序?我需要按 Prize.id 升序排序。提前致谢。

func checkPrizes() {
        
        trace("checkPrizes")
        guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return }
        
        let request: NSFetchRequest<Prize> = Prize.fetchRequest()
        //finding specific record

        let context = appDelegate.persistentContainer.viewContext

        outputText.text = ""
        do {
            prizes = try context.fetch(request)
//                try context.save()

                for item in prizes {
                    print("Prize amount: \(item.amount!)")
                    outputText.text = item.amount!
                    print("Prize id: \(item.id!)")
                    outputText.text = item.id!

                    print("Prize region: \(item.region)")
                    outputText.text = String(item.region)

                    print("Prize won: \(item.won)")
//                    outputText.text.append(String(item.won) + "\n")
                }
            print("CheckPrizes count: \(prizes.count)")
            outputText.text = "CheckPrizes count: \(String(prizes.count))"
            } catch {
                print("Failed to retrieve record")
                print(error)
            }
    }

【问题讨论】:

标签: swift core-data swift4


【解决方案1】:

如果你有你的NSFetchRequest,你可以使用sort var sortDescriptors: [NSSortDescriptor]?,这是你获取请求的排序描述符。

request = [NSSortDescriptor(key: "id", ascending: true)]

或者您可以在 FetchRequest 完成后对数组进行排序。

【讨论】:

    【解决方案2】:
    let sort = NSSortDescriptor(key: "id", ascending: true)
            request.sortDescriptors = [sort]
    

    【讨论】:

    • 嘿,如果你也提供一些解释而不是仅仅抛出一段代码,那就太好了;)
    • 在 Stack Overflow 上不鼓励仅使用代码的答案,因为它们没有解释它如何解决问题。请编辑您的答案以解释此代码的作用以及它如何回答问题,以便它对其他有类似问题的用户也有用。
    猜你喜欢
    • 2012-06-18
    • 1970-01-01
    • 2013-02-17
    • 2017-04-22
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多