首页 > 解决方案 > 无法转换“NSSet”类型的值?到预期的参数类型'范围'(使用 CoreData)

问题描述

使用 CoreData 我不知道如何解决这个问题:

错误:Cannot convert value of type 'NSSet?' to expected argument type 'Range<Int>'

private func displayTopics(subject: Subject) -> some View {
    NavigationView {
        Form {
            List {
                ForEach(subject.topics) { topic in
                    NavigationLink(
                        destination: Text("Destination"),
                        label: {
                            Text("Navigate")
                    })
                }
            }
        }
    }

我应该怎么办?

标签: core-dataswiftui

解决方案


ForEach 不明白NSSet,你必须把它转换成数组:

if subject.topics != nil {
    ForEach(Array(subject.topics! as Set), id: \.self) { topic in
        NavigationLink(
            destination: Text("Destination"),
            label: {
                Text("Navigate")
        })
    }
}

推荐阅读