Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在NSSet上迭代-SwiftUI 2.0_Swift_Core Data_Swiftui_Nsset - Fatal编程技术网

在NSSet上迭代-SwiftUI 2.0

在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

我开始研究CoreData,有两个实体。这些构成了玩家之间的多对多关系:

和小组:

我试图在一个列表中使用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(数组(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 ?? "")" )
}