core-data - 访问相关实体
问题描述
我在CoreData中有三个实体。,和. 每个都与另一个相关。Subject
Topic
Content
我想访问三个不同视图中的数据a SubjectView
, aTopicView
和 a ContentView
。
我尝试通过 FetchRequest 获取数据。在这里,您可以看到所有主题的 FetchRequest。它加载所有数据。但我想限制它只加载特定的数据Subject
:
@FetchRequest(sortDescriptors: [NSSortDescriptor(key: "title", ascending: true)])
private var topics: FetchedResults<Topic>
主题的 FetchRequest如下所示:
@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 以使数据相互依赖。
更新:
我需要什么NSPredicate(format: "")
?
非常感谢。
解决方案
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))
}
...
}
使用“谓词”。而已!
推荐阅读
- python-3.x - 如何从 Odoo 网站重定向到发票菜单?
- java - 如何以编程方式从二维码中获取所有数据,如姓名、电子邮件、联系信息?
- c# - 为什么数组是 C# 中的抽象类?
- html - 如何在jsp中将数字字段屏蔽为密码
- r - 我想提取“\”之前的第一个字符串以在 data.frame 中创建一个新变量
- reactjs - 如何让我的下拉列表对更新做出反应而无需刷新?
- sql - postgresql 中的 '!=' 和 '<>' 运算符
- java - (Android Unity 插件)我创建了一个简单的插件,预期为 123,得到 0
- c# - 为什么我可以将 Int 转换为 IComparable?
- python - Python 未卸载(Windows 10)