如何使用 SwiftUI @FetchRequest 获取子实体?

问题描述 投票:0回答:1

假设您在 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 实体。

但是我想知道是否有其他方法可以做到这一点,这样我就不必单独获取所有子实体然后将它们添加在一起?

swift swiftui core-data
1个回答
0
投票

默认情况下,它确实在获取结果中包含子实体。检查您的型号是否正确。

© www.soinside.com 2019 - 2024. All rights reserved.