Hallo zusammen,
ich würde gern eine Liste aller Elemente aus meinem Datenmodell erstellen, jedoch in Abhängigkeit, ob ein einem anderen Datenmodell ein Feld mit einem bestimmten Wert gefüllt ist.
Hier mein Datenmodell:
Alles anzeigen
Nun erstelle ich mir eine Liste der Element:
Alles anzeigen
Soweit, so gut .....
Jetzt kommt mein Problem: ich würde jedoch gern aber nur die Elemente anzeigen lassen, wenn im Datenmodell "Trainings" im Feld "monthId" auch die "month.uuid" des Datenmodells "Month" enthalten ist. Also wenn in irgendeinem Element von "Trainings" das Feld "monthId" den Wert von "month.uuid" enthält. Mein Versuch, welcher leider scheitert, sieht so aus:
Es kommt der Fehler: Cannot convert value of type '[TrainingModel]' to expected condition type 'Bool'
Ich hänge gerade in der Luft ........
Die Zeile 2 soll alle Element im Datenmodell "Trainings" durchsuchen und prüfen, ob "month.uuid" in "monthId" enthalten ist. Sobald dieses in irgendeinem Element enthalten, dann soll es der Liste erscheinen.
Vielleicht kann mir jemand einen Denkanstoß geben ...
Vielen Dank vorab
ich würde gern eine Liste aller Elemente aus meinem Datenmodell erstellen, jedoch in Abhängigkeit, ob ein einem anderen Datenmodell ein Feld mit einem bestimmten Wert gefüllt ist.
Hier mein Datenmodell:
Quellcode
- struct MonthModel: Hashable {
- var description: String
- var name: String
- var order: String
- var record: CKRecord
- var uuid: String = UUID().uuidString
- init(description: String, name: String, order: String, record: CKRecord, uuid: String) {
- self.description = description
- self.name = name
- self.order = order
- self.record = record
- self.uuid = uuid
- } // end init
- } // end struct
- struct TrainingModel: Hashable {
- var description: String
- var monthId: String
- var name: String
- var practiceId: String
- var record: CKRecord
- var uuid: String = UUID().uuidString
- init(description: String, monthId: String, name: String, practiceId: String, record: CKRecord, uuid: String) {
- self.description = description
- self.monthId = monthId
- self.name = name
- self.practiceId = practiceId
- self.record = record
- self.uuid = uuid
- } // end init
- } // end struct
Nun erstelle ich mir eine Liste der Element:
Quellcode
- struct TestView: View {
- @EnvironmentObject var globalSettings: GlobalSettings
- @StateObject private var vmCKDb = CloudKitDBViewModel()
- var body: some View {
- VStack {
- List {
- ForEach (vmCKDb.months, id: \.self) { month in
- Text("\(month.uuid)")
- } // end foreach
- } // end list
- } //end vstack
- } // end var body
- } // end struct
Jetzt kommt mein Problem: ich würde jedoch gern aber nur die Elemente anzeigen lassen, wenn im Datenmodell "Trainings" im Feld "monthId" auch die "month.uuid" des Datenmodells "Month" enthalten ist. Also wenn in irgendeinem Element von "Trainings" das Feld "monthId" den Wert von "month.uuid" enthält. Mein Versuch, welcher leider scheitert, sieht so aus:
Ich hänge gerade in der Luft ........
Die Zeile 2 soll alle Element im Datenmodell "Trainings" durchsuchen und prüfen, ob "month.uuid" in "monthId" enthalten ist. Sobald dieses in irgendeinem Element enthalten, dann soll es der Liste erscheinen.
Vielleicht kann mir jemand einen Denkanstoß geben ...
Vielen Dank vorab
... aller Anfang ist schwer ...