I have an observable object:
class Schedule: ObservableObject {
@Published var language: Language?
@Published var date = Date()
init(language: Language, date: Date) {
self.language = language
self.date = date
}
}
Which the user creates data for using this:
struct AddScheduleView: View {
@StateObject var schedule = Schedule() ***Missing arguments for parameters 'language', 'date' in call***
@Environment(\.managedObjectContext) private var viewContext
@FetchRequest(entity: Language.entity(), sortDescriptors: []) var languages: FetchedResults<Language>
var body: some View {
GeometryReader { geometry in
HStack {
VStack {
Text("What to learn:")
.foregroundColor(.white)
.fontWeight(.bold)
.opacity(0.8)
.font(.system(size: 12))
.frame(width: geometry.size.width / 4, height: 12, alignment: .topLeading)
.padding()
Picker("Choose a language", selection: $schedule.language) { ***Generic parameter 'SelectionValue' could not be inferred***
ForEach(languages, id:\.self) {
Text("\($0.name ?? "Unknown")")
}
}
.frame(width: 100, height: 500, alignment: .topLeading)
.padding()
}
Spacer()
VStack {
Text("When to learn:")
.foregroundColor(.white)
.fontWeight(.bold)
.opacity(0.8)
.font(.system(size: 12))
.frame(width: geometry.size.width / 4, height: 12, alignment: .topTrailing)
.padding()
DatePicker(selection: $schedule.date, in: ...Date()) {
}
.frame(width: 100, height: 500, alignment: .topTrailing)
.padding()
}
}
}
}
}
I get the error message inside the *'s for the line with @StateObject. What I can't understand is why I'm supposed to pass an argument into the call to Schedule, when I don't have anything to pass into it. The user is generating the data from the language and date pickers. An error also happens in the line with the first picker, but not the second.