Search code examples
swiftswiftuiobservable

How we can use optional published var?


I got a ObservableObject-Class which has a optional published var and I am giving this to ForEach, because I did not initialized my published, even after lunch of my app ForEach should not work. and that is okay, how I can correctly type it in my code?

struct PersonData: Identifiable
{
    let id  = UUID()
    var name: String
}


class PersonDataModel: ObservableObject
{
    @Published var persones: [PersonData]?
}


struct ContentView: View {
    
    @StateObject var personDataModel = PersonDataModel()
    
    var body: some View {

        HStack
        {
             ForEach( personDataModel.persones != nil ? personDataModel.persones! : [] ) { person in 
                 Text(person.name)  // ← : Here
             }
        }

    }
}

Solution

  • Probably you wanted this

    HStack
    {
        ForEach(personDataModel.persones ?? [] ) { person in Text(person.name) }
    }