Ich habe ein Spiel mit 500 Datensätzen in Kerndaten. Jeder Datensatz hat eine ID. Sie sind alle einzigartig von 1 bis 500.

Wie sortiere ich in Swift 4 oder 5 die Ergebnisse dieser Abrufanforderung? Ich muss aufsteigend nach price.id sortieren. Danke im Voraus.

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)
            }
    }
0
dreadbot 18 Aug. 2020 im 04:12

2 Antworten

Beste Antwort

Wenn Sie Ihr NSFetchRequest erhalten haben, können Sie sort var sortDescriptors: [NSSortDescriptor]? verwenden, den Sortierdeskriptor Ihrer Abrufanforderung.

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

Oder Sie können das Array einfach sortieren, nachdem Ihre FetchRequest abgeschlossen ist.

1
davidev 18 Aug. 2020 im 07:52
let sort = NSSortDescriptor(key: "id", ascending: true)
        request.sortDescriptors = [sort]
0
dreadbot 18 Aug. 2020 im 01:34