swift - 迭代 NSSet - SwiftUI 2.0

标签 swift core-data swiftui nsset

我开始研究 CoreData 并有两个实体。这些形成了 Player 之间的多对多关系:
enter image description here
和团队:
enter image description here
我试图在列表中使用 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/

相关文章:

ios - 图表显示不正确? iOS 图表库

ios - Swift 中的 UITabBarItem 图像插入问题

ios - Swift 的核心数据 transient 值

ios - SwiftUI:如何将 CoreData 与动态过滤器相加?

swift - 从 CoreData 中删除对象

ios - Collection View 中标签的中心词

ios - SwiftUI - 多个变量发生变化时是否会相互 react ?

ios - 点击分段控制时 SwiftUI 关闭键盘

ios - 在一个 View 中强制横向方向

iOS 应用程序/键盘插件无效