Core data 访问相关实体
我在CoreData中有三个实体<代码>主题,Core data 访问相关实体,core-data,swiftui,Core Data,Swiftui,我在CoreData中有三个实体主题,主题和内容。相互关联 我想在三个不同的视图中访问数据,主题视图,主题视图和内容视图 我试图通过FetchRequest获取数据。这里您可以看到所有主题的FetchRequest。它加载所有数据。但是我想限制它只加载特定主题的数据: @FetchRequest(sortDescriptors: [NSSortDescriptor(key: "title", ascending: true)]) private var topics: Fe
主题
和内容
。相互关联
我想在三个不同的视图中访问数据,主题视图
,主题视图
和内容视图
我试图通过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你能给我一个如何在我的案例中使用谓词的例子吗?谢谢