我正在尝试使用“ FlightRecording”实体中的所有条目填充列表。但我不能使用Text(recording.name)
,因为它说“ NSManagedObject没有成员'name'”。
为什么这甚至是NSManagedObject而不是'FlightRecordings'类型的对象?
struct FlightRecorderBrowser: View {
let flightRecordings: [FlightRecording] = FlightRecorder().fetchAllRecordings()
var body: some View {
NavigationView {
List() {
ForEach(flightRecordings, id: \.self) {recording in
Text(recording.name)
}
}
.navigationBarTitle("Flight Recordings")
}
}
}
答案 0 :(得分:3)
尝试将显式类型添加到ForEach
闭包中,因为记录可以同时是NSManagedObject
和FlightRecording
,因此编译器决定使用{{1} }。
NSManagedObject
编辑:如果ForEach(flightRecordings, id: \.self) { (recording: FlightRecording) in
Text(recording.name)
}
是可选的,则必须强制将其拆开或为Text提供使用该值的替代方法。 recording.name
或recording.name!
避免强制展开错误的另一种方法是仅在recording.name ?? "default-text"
时显示Text。