在 SwiftUI 中,View我有一个List基于@FetchRequest显示Primary实体和通过关系连接Secondary实体的数据。当我添加一个带有新的相关次要实体的新实体时,View和它List的更新正确Primary。
问题是,当我Secondary在详细视图中更新连接的项目时,数据库会更新,但更改未反映在Primary列表中。显然,@FetchRequest不会被另一个视图中的更改触发。
当我此后在主视图中添加新项目时,先前更改的项目最终会得到更新。
作为一种解决方法,我还更新Primary了详细信息视图中实体的属性,并将更改正确传播到Primary视图。
我的问题是:如何强制更新@FetchRequestsSwiftUI Core Data 中的所有相关内容?特别是,当我无法直接访问相关实体时/ @Fetchrequests?
import SwiftUI
extension Primary: Identifiable {}
// Primary View
struct PrimaryListView: View {
@Environment(\.managedObjectContext) var context
@FetchRequest(
entity: Primary.entity(),
sortDescriptors: [NSSortDescriptor(key: "primaryName", ascending: true)]
)
var fetchedResults: FetchedResults<Primary>
var body: some View {
List {
ForEach(fetchedResults) { primary in
NavigationLink(destination: …Run Code Online (Sandbox Code Playgroud)