gpt4 book ai didi

cocoa - 核心数据 - 遵循关键路径

转载 作者:行者123 更新时间:2023-12-03 16:22:40 26 4
gpt4 key购买 nike

我是核心数据新手,正在寻找设置查询的正确方法。

我的托管对象模型包括 Apartment、Lease 类,以及我称为 ApartmentLease 的连接表。这看起来像:

/-----------------\      /-----------------\      /-----------------\
| Apartment | | ApartmentLease | | Lease |
|-----------------| |-----------------| |-----------------|
| number | | startOn | | occupantName |
|-----------------| | endOn | | monthlyRate |
| apartmentLeases |-\ |-----------------| | occupantPhone |
\-----------------/ \->>| apartment | |-----------------|
| lease |<<----|apartmentLeases |
\-----------------/ \-----------------/

所以我试图建模的是,一个租约可以有许多公寓,并且租约中的每个公寓都有自己的开始和结束日期。

所以我的问题是:给定一个日期范围,我如何查询公寓对象并获取在该日期范围内占用公寓的所有租赁的数组?

感谢并抱歉我糟糕的 ASCII 艺术!

伯特

最佳答案

不要查询 Apartment 实体,而是查询您的 ApartmentLease 实体。

[NSPredicate predicateWithFormat:@"startOn <= %@ && endOn >= %@", referenceDate, referenceDate];

一旦您拥有了 ApartmentLease 实体数组,您就可以通过以下方式检索公寓实体:

NSArray *apartments = [apartmentLeaseArray valueForKeyPath:@"@distinctUnionOfObjects.apartment"];

现在您拥有了符合您的搜索条件的公寓实体数组。

更新

如果您已经有了公寓的引用信息,那么只需获取一组公寓租约,并根据该组租约筛选出包含相关日期的租约。如果您已经拥有公寓,则没有理由通过 NSFetchRequest。将 Core Data 视为对象图,而不是数据库。所有关系都已预先填充,您无需获取它们,只需遍历对象图即可。

关于cocoa - 核心数据 - 遵循关键路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3191227/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com