Wie kann man in SwiftUI einen ausgewählten Wert in File1 in File2 übertragen, dann in File2 eine Berechnung durchführen und das Ergebnis in File1 anzeigen?
Ich möchte, dass man in einem Picker in der File "ContentView.swift" (in dem Bild zu sehen) einen Wert auswählen kann dieser Wert soll dann in eine neue File "Berechnung.swift" übertragen werden und dort soll mit dem Wert weitergerechnet werden. Z.B. soll dort der Wert einfach nur + 1 genommen werden und dann soll der fertig berechnete Wert wieder zurück in die File "ContentView.swift" übertragen werden und dann in einem Textfeld angezeigt werden. Muss die File "Berechnung.swift" eine SwiftUI File sein oder eine Swift File? Ein Beispiel wäre sehr nett.
3 Antworten

Im einfachsten Fall fügst du dazu in deiner View noch eine Textfeld mit einem Funktionsaufruf ein:
Text("Ergebnis: \(calculateMyValue(initialisator))")
Da initialisator ein State ist, wird es auch bei Änderungen über den Picker aktualisiert.
Die Funktion calculateMyValue() packst du dann einfach in ein extra Swift-File:
func calculateMyValue(int: value) -> Int {
return value + 42
}
Wenns sauberer und umfangreicher wird, würde ich mich an deiner Stelle mal in Combine einlesen und mit einem ObservableObject arbeiten.

Super perfekt danke dir. Genauso funktioniert es und genauso brauche ich es. Auch danke dir für den Tipp mit dem reinlesen!

func funktionsname(int: rechne) -> Int {
return rechne + 1
}
aufruf:
var berechneteZahl = funktionsname(int: beliebige Zahl)
ich empfehle folgende Seite. Dort sind die Grundlagen gut erklärt: https://swift.org/
ich glaube das Kompendium gibt es dirt auch als PdF zum Download



Moin,
wenn ich dich richtig verstehe, benötigst du nur eine Funktion mit einem -> return Wert. Die kann in der gleichen Klasse deklariert werden oder in einer „Bibliothek“. Praktisch wenn man sie in mehreren Projekten oder Klassen benutzen will.
Hi,
ich denke mal, dass ich nur eine Funktion benötige. Diese Funktion soll aber in einer neuen File sein und nicht in der gleichen View/Klasse. Quasi wie du es schon gesagt hast als "Bibliothek". Kannst du mir da ein Beispiel geben? Und kann/muss die neue File auch eine SwiftUI File sein und keine Swift File? Ich schätze mal, dass mit einer Swift File das "übertragen" des Wertes nicht funktioniert. Also von einer SwiftUI File in eine Swift File und dann wieder in die SwiftUI File.