Core data 访问相关实体

Core data 访问相关实体,core-data,swiftui,Core Data,Swiftui,我在CoreData中有三个实体主题,主题和内容。相互关联 我想在三个不同的视图中访问数据,主题视图,主题视图和内容视图 我试图通过FetchRequest获取数据。这里您可以看到所有主题的FetchRequest。它加载所有数据。但是我想限制它只加载特定主题的数据: @FetchRequest(sortDescriptors: [NSSortDescriptor(key: "title", ascending: true)]) private var topics: Fe

我在CoreData中有三个实体<代码>主题,
主题
内容
。相互关联

我想在三个不同的视图中访问数据,
主题视图
主题视图
内容视图

我试图通过FetchRequest获取数据。这里您可以看到所有主题的FetchRequest。它加载所有数据。但是我想限制它只加载特定
主题的数据

@FetchRequest(sortDescriptors: [NSSortDescriptor(key: "title", ascending: true)])
private var topics: FetchedResults<Topic>
@FetchRequest(sortDescriptors:[NSSortDescriptor(键:“title”,升序:true)])
私有变量主题:FetchedResults
主题的获取请求如下所示:

@FetchRequest(sortDescriptors: [NSSortDescriptor(key: "isMajor", ascending: false), NSSortDescriptor(key: "name", ascending: true)])
private var subjects: FetchedResults<Subject>
@FetchRequest(sortDescriptors: [NSSortDescriptor(key: "date", ascending: true)])
    private var contents: FetchedResults<Content>
@FetchRequest(sortDescriptors:[NSSortDescriptor(key:“isMajor”,升序:false),NSSortDescriptor(key:“name”,升序:true)])
私有var主题:FetchedResults
对于内容,如下所示:

@FetchRequest(sortDescriptors: [NSSortDescriptor(key: "isMajor", ascending: false), NSSortDescriptor(key: "name", ascending: true)])
private var subjects: FetchedResults<Subject>
@FetchRequest(sortDescriptors: [NSSortDescriptor(key: "date", ascending: true)])
    private var contents: FetchedResults<Content>
@FetchRequest(sortDescriptors:[NSSortDescriptor(键:“日期”,升序:true)])
私有变量内容:FetchedResults
也许您知道如何重新构造FetchRequests,使数据相互依赖

更新:

我需要什么样的预测(格式:)

非常感谢。

结构主题视图:视图{
struct TopicView: View {
    
    ...

    var subject: Subject
    
    @FetchRequest var topics: FetchedResults<Topic>
    
    init(subject: Subject) {
        self.subject = subject
        self._topics = FetchRequest(entity: Topic.entity(), sortDescriptors: [NSSortDescriptor(key: "title", ascending: true)], predicate: NSPredicate(format: "subject == %@", subject))
    }

    ...

}
... var主体:主体 @FetchRequest变量主题:FetchedResults 初始(主题:主题){ self.subject=主语 self.\u topics=FetchRequest(实体:Topic.entity(),sortdescriptor:[NSSortDescriptor(键:“title”,升序:true)],谓词:NSPredicate(格式:“subject===%@”,subject)) } ... } 使用“谓词”。就这样

结构主题视图:视图{ ... var主体:主体 @FetchRequest变量主题:FetchedResults 初始(主题:主题){ self.subject=主语 self.\u topics=FetchRequest(实体:Topic.entity(),sortdescriptor:[NSSortDescriptor(键:“title”,升序:true)],谓词:NSPredicate(格式:“subject===%@”,subject)) } ... }
使用“谓词”。就这样

你是否已经有了一个主题对象,你想把它限制在你的主题上?而不是使用反向关系。还是要基于名称进行限制?不太清楚。。你先拿什么?您想限制什么?SubjectView有一个变量
subjects
,子视图(TopicView)有一个变量
subject
。您需要在获取请求中使用谓词。Paul Hudson在这里这样描述:@davidev你能提供一个使用“反向关系”的例子吗?@TomHarrington你能给我一个如何在我的案例中使用谓词的例子吗?谢谢你是否已经有了一个主题对象,你想把它限制在你的主题上?而不是使用反向关系。还是要基于名称进行限制?不太清楚。。你先拿什么?您想限制什么?SubjectView有一个变量
subjects
,子视图(TopicView)有一个变量
subject
。您需要在获取请求中使用谓词。Paul Hudson在这里这样描述:@davidev你能提供一个使用“反向关系”的例子吗?@TomHarrington你能给我一个如何在我的案例中使用谓词的例子吗?谢谢