将NSManagedObject与SwiftUI列表一起使用
我想显示存储为NSManagedObjects的CoreData记录列表 我想这样做:将NSManagedObject与SwiftUI列表一起使用,swiftui,nsmanagedobject,Swiftui,Nsmanagedobject,我想显示存储为NSManagedObjects的CoreData记录列表 我想这样做: struct RecordView: View { @State var records:[MyRecord] //[NSManagedObject] var body: some View { VStack { List(records) {record in // Error: Initializer 'init(_:r
struct RecordView: View
{
@State var records:[MyRecord] //[NSManagedObject]
var body: some View
{
VStack
{
List(records) {record in // Error: Initializer 'init(_:rowContent:)' requires that 'Record' conform to 'Identifiable'
RecordRow(record: record)
}
}
}
struct RecordRow: View {
var record: Record //NSManagedObject
var body: some View
{
NavigationLink(destination: RecordForm(record: record))
{
HStack
{
Text(record.name)
.frame(width: 140, height: 50, alignment: .leading)
}
}
}
我犯了个错误
Initializer 'init(_:rowContent:)' requires that 'Record' conform to 'Identifiable'
我遗漏了什么?由于
NSManagedObject
是引用类型,您只需对每个id使用self
,如下所示
List(records, id: \.self) {record in
RecordRow(record: record)
请参阅文档中的协议,并以某种方式采用它