我开始研究 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 ?? "")" )
}
注意:尽量避免对可选的强制解包,这通常会导致运行时崩溃。
关于swift - 迭代 NSSet - SwiftUI 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65704981/