将NSManagedObject与SwiftUI列表一起使用

将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

我想显示存储为NSManagedObjects的CoreData记录列表

我想这样做:

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)

请参阅文档中的协议,并以某种方式采用它