【发布时间】:2025-12-26 06:05:12
【问题描述】:
我有一个可观察的对象:
class Schedule: ObservableObject {
@Published var language: Language?
@Published var date = Date()
init(language: Language, date: Date) {
self.language = language
self.date = date
}
}
用户为此创建了哪些数据:
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()
}
}
}
}
}
我在带有@StateObject 的行的 * 中收到错误消息。我不明白的是,当我没有任何东西可以传递给它时,为什么我应该将一个参数传递给对 Schedule 的调用。用户正在从语言和日期选择器生成数据。第一个选择器的行中也会发生错误,但不是第二个。
【问题讨论】: