使用 CoreData 在 SwiftUI 中填充列表
Filling a List in SwiftUI with CoreData
我正在尝试用我的 "FlightRecording" 实体中的所有条目填充一个列表。但我不能使用 Text(recording.name)
,因为它显示 "NSManagedObject has no member '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")
}
}
}
尝试向 ForEach
闭包添加显式类型,因为记录可以同时是 NSManagedObject
和 FlightRecording
,所以编译器只是决定使用 NSManagedObject
.
ForEach(flightRecordings, id: \.self) { (recording: FlightRecording) in
Text(recording.name)
}
编辑:如果 recording.name
是可选的,您必须强制展开它或为 Text 提供替代方案才能使用该值。 recording.name!
或 recording.name ?? "default-text"
另一个避免强制展开错误的选项是仅在 if recording.name != nil
.
时显示文本
我正在尝试用我的 "FlightRecording" 实体中的所有条目填充一个列表。但我不能使用 Text(recording.name)
,因为它显示 "NSManagedObject has no member '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")
}
}
}
尝试向 ForEach
闭包添加显式类型,因为记录可以同时是 NSManagedObject
和 FlightRecording
,所以编译器只是决定使用 NSManagedObject
.
ForEach(flightRecordings, id: \.self) { (recording: FlightRecording) in
Text(recording.name)
}
编辑:如果 recording.name
是可选的,您必须强制展开它或为 Text 提供替代方案才能使用该值。 recording.name!
或 recording.name ?? "default-text"
另一个避免强制展开错误的选项是仅在 if recording.name != nil
.