迭代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 ?? "")" )
}

注意:尽量避免强制解包选项,通常会导致运行时崩溃。


以上是迭代NSSet-SwiftUI2.0的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>