Refresh view with new CloudKit records

Hello, I'm new to iOS development and I need help for working with CloudKit.

I have an application that allows me to add, delete and display information stored in a CloudKit container.

When I try to add a new record, this one can be visible into my CloudKit Console but if don't switch to a other view and back to my view (with my list of records) the record isn't displayed.

How can I update my list to reflect directly the new record add to my container ?

This is my code with split into different files (in attachment)

Sets : define my record struct SetsView: list of my records AddSetView: add new records AddSetView-ViewModel : view model with my add function SetsView-ViewModel: view model with my fetch function

Add function :

func add() async throws {
            var newSet = set
            newSet.name = name
            newSet.code = code
            newSet.releaseDate = releaseDate
            newSet.numberOfCards = numberOfCards
           
            let record = try await db.save(newSet.set)
            guard let set = Set(record: record) else { return }
            setsDictionary[set.id!] = set
            print("Set added")
        }

Fetch function :

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 fetched")
            print(sets)
        }

I try to add some print to figure out what's going on, but I don't understand.

This is the console log for this scenario : open app without any data into the container > add a new record

First, the fetch function is executed but there is no data into the container (it's logic)

Second I add a new record (Set) :

Into the CloudKit console the new Set is visible

So for refresh my view with this record I need to re-call the fetch function. I tried many things but nothing works.

Even if the fetch function is called, the new record is not retrieved. Do you have any idea how to solve this problem?

Thanks for your help.

Refresh view with new CloudKit records
 
 
Q