迭代NSSet-SwiftUI2.0
我开始研究 CoreData 并有两个实体。这些形成了 Player 之间的多对多关系:
和团队:
我试图在列表中使用 ForEach 遍历团队的球员,但我似乎无法让它工作。我一直在尝试的代码如下。我尝试的任何其他解决方案都会出现错误,例如“NSObject 类型的值没有成员名称”
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(Array(team.people as? Set<Player> ?? []), id: .self){ player in
Text("(player.name ?? "")" )
}
注意:尽量避免强制解包选项,通常会导致运行时崩溃。