假设您在 CoreData 中定义了一个实体 A,然后将其抽象化并赋予它三个子实体 B、C 和 D。然后您想要在视图中创建所有这些子实体的列表。
如何在单个获取请求中获取所有子实体,最好像下面的示例一样(但不适用于 A,仅适用于 A 的所有子实体)
struct ContentView: View {
@Environment(\.managedObjectContext) private var viewContext
@FetchRequest(
entity: A.entity(),
sortDescriptors: [NSSortDescriptor(keyPath: \A.a, ascending: false)],
animation: .default
) private var fetchedAs: FetchedResults<A>
var body: some View {
VStack {
List {
ForEach(fetchedAs) { pr in
Text("foo")
}
}
}
}
}
我怀疑这可能是不可能的,因为当我尝试时它没有返回任何内容,因为没有保存 A 实体。
但是我想知道是否有其他方法可以做到这一点,这样我就不必单独获取所有子实体然后将它们添加在一起?
默认情况下,它确实在获取结果中包含子实体。检查您的型号是否正确。