带选择器的SwiftUI列表:选择不适用于自定义类型(macOS)

带选择器的SwiftUI列表:选择不适用于自定义类型(macOS),macos,swiftui,swiftui-list,Macos,Swiftui,Swiftui List,我不知道我在这里做错了什么;基本上,我无法在macOS应用程序的自定义类型列表中进行选择。我缺少的是一致性吗 List1表示自定义类型的列表,在该列表中我无法选择条目,而在仅使用Int的List2中,它可以工作 以下是我的看法: struct ContentView:View{ var body:一些观点{ VStack{ ListView1() 分隔器() ListView2() } } } 结构ListView1:视图{ @状态-私有变量选择:项?=nil var localSyslogE

我不知道我在这里做错了什么;基本上,我无法在macOS应用程序的自定义类型列表中进行选择。我缺少的是一致性吗

List1
表示自定义类型的列表,在该列表中我无法选择条目,而在仅使用Int的
List2
中,它可以工作

以下是我的看法:

struct ContentView:View{
var body:一些观点{
VStack{
ListView1()
分隔器()
ListView2()
}
}
}
结构ListView1:视图{
@状态-私有变量选择:项?=nil
var localSyslogEntries=[
项目(信息:“信息1”),
项目(信息:“信息2”),
项目(信息:“信息3”),
]
var body:一些观点{
列表(localSyslogEntries,selection:$selection){entry in
VStack{
文本(entry.id.uuistring)
分隔器()
}
}
.框架(最小高度:200.0)
}
}
结构ListView2:视图{
@国家私有变量选择:Int?=nil
var body:一些观点{
列表(0..添加id


确认工作,谢谢。这是为什么?我符合
可识别
,这不够吗?既然你在列表中添加了id,但列表如何知道?如何识别?这就是为什么需要使用列表中的id。好吧,到目前为止,我的印象是符合
可识别
(也就是说,有一个唯一的
id
)就足以显示列表行了——它是这样的。因此,在列表选择时,它不是这样的,一定有原因(同时,我也意识到我必须使用
id:\.self
而不是
id:\.id
,当涉及行内容时,我必须这样做。因此,我不得不承认,我并没有完全理解它——但话说回来:它确实有效,所以我确信有一个简单的解释,我只是还不明白,我想。。。
List(localSyslogEntries, id: \.self, selection: $selection) { entry in