import Foundation import SwiftUI import CloudKit extension SetsView { @MainActor class SetsViewModel: ViewModel { @Published var sets: [Set] = [] private var db = CKContainer.default().privateCloudDatabase // Container CloudKit enum SetSortingKeys { case code, releaseDate, numberOfCards } func delete(_ recordId: CKRecord.ID) { db.delete(withRecordID: recordId) { deletedRecordId, error in if let error = error { print(error) } else { Task { let _: () = try await self.fetchSets() } } } } func fetchSets() async throws { let query = CKQuery(recordType: SetRecordKeys.type.rawValue, predicate: NSPredicate(value: true)) query.sortDescriptors = [NSSortDescriptor(key: "name", ascending: false)] let result = try await db.records(matching: query) // récupère les données qui correspondent aux critères let records = result.matchResults.compactMap { try? $0.1.get() } // Récupère les records sets.removeAll() records.forEach { record in sets.append(Set(record: record)!) } print(sets) } } }