在NSSet上迭代-SwiftUI 2.0
我开始研究CoreData,有两个实体。这些构成了玩家之间的多对多关系: 和小组: 我试图在一个列表中使用ForEach遍历一个团队的球员,但我似乎无法让它工作。下面是我一直在尝试的代码。我尝试的任何其他解决方案都会出现错误,例如“NSObject类型的值没有成员名称”在NSSet上迭代-SwiftUI 2.0,swift,core-data,swiftui,nsset,Swift,Core Data,Swiftui,Nsset,我开始研究CoreData,有两个实体。这些构成了玩家之间的多对多关系: 和小组: 我试图在一个列表中使用ForEach遍历一个团队的球员,但我似乎无法让它工作。下面是我一直在尝试的代码。我尝试的任何其他解决方案都会出现错误,例如“NSObject类型的值没有成员名称” struct PlayersView: View{ var team: Team var body: some View{ NavigationView{ L
struct PlayersView: View{
var team: Team
var body: some View{
NavigationView{
List{
ForEach(Array(team.people! as Set), id: \.self){ player in
Text("\(player.name)" ) //Error on this line
}
}
}
}
}
有什么想法吗?我想我需要将播放器类型更改回播放器对象,但我不确定请尝试以下操作(使用Xcode 12.1/iOS 14.1编译)
ForEach(数组(team.people as?Set???[]),id:\.self){player in
文本(\(player.name??))
}
注意:尽量避免强制展开optionals,这通常会导致运行时崩溃
ForEach(Array(team.people as? Set<Player> ?? []), id: \.self){ player in
Text("\(player.name ?? "")" )
}