SwiftUI, text à partir d'une fonction

Salut à tous
je bloque sur un truc peut etre tout bête, mais je trouve pas le principe

j’ai une fonction qui me calcule un résultat à partir d’un mlmodel et que j’affiche dans l’app via une alerte.

la fonction :

func calculateBedTime() {
        let model = SleepCalculator()
        
        let components = Calendar.current.dateComponents([.hour, .minute], from: wakeUp)
        
        let hour = (components.hour ?? 0) * 60 * 60
        let minute = (components.minute ?? 0) * 60
        
        do {
            let prediction = try model.prediction(wake: Double(hour + minute), estimatedSleep: sleepAmount, coffee: Double(coffeeAmount))
            let sleepTime = wakeUp - prediction.actualSleep
            
            let formater = DateFormatter()
            formater.timeStyle = .short
            alertMessage = formater.string(from: sleepTime)
            alertTitle = "Your ideal bedtime is ..."
            
        } catch {
            alertTitle = "Error"
            alertMessage = "Sorry, there was a probleme calculating your bedtime."
        }
        
        showingAlert = true
    }

l’alerte :

.navigationBarItems(
        trailing: Button(action: calculateBedTime, label: { Text("Calculate")
        }))
            .alert(isPresented: $showingAlert) {
                Alert(title: Text(alertTitle), message: Text(alertMessage), dismissButton: .default(Text("OK")))
        }

tout ça fonctionne, mais j’ai un souci si je veux afficher le résultat de ma fonction avec un Text tout simple, sans passer par une alerte.
Je précise que j’ai un bouton qui lance la fonction et affiche l’alerte, comment faire sans bouton et sans alerte pour que le résultat apparaisse « en direct » avec un Text.

j’ai essayé de transformer la fonction comme ça :

func calculateBedTime() -> String {
...
return monMessage
}

avec le l’affichage suivant :

Text(calculateBedTime())

mais le texte reste désespérement vide. Par contre, j’ai un affichage si je fais return « OK » dans ma fonction.
Je pense que la fonction ne doit pas s’exécuter et c’est pour ça que monMessage reste vide mais je ne trouve pas la solution.

j’espère que j’ai été clair
merci d’avance
David

import SwiftUI

class MaClasse {
  func calcul() -> String {
    let a = Int.random(in: 0...300)
    let b = Int.random(in: 0...500)
    let r = a + b
    return "Calcul : " + String(r)
  }
}

struct ContentView: View {
    var maClasse = MaClasse()
  
    var body: some View {
      VStack {
        Text(maClasse.calcul())
          .font(.largeTitle)
          .bold()
          .foregroundColor(.blue)
      }
    }
}


struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

ok pour ton code
c’est donc ma fonction qui ne fonctionne pas alors. Bizarre, elle fonctionne avec l’alerte mais pas avec un code similaire au tien