11

假设我有一个名为 Event 的 Core Data 实体,它代表经常性(每年)的事件。每个事件都有一个“日期”属性。

我需要将此事件呈现给按“下一次出现日期”排序的用户。当然,此属性取决于当前日期,因此应标记为瞬态:将其存储在数据库中是没有意义的。

但是,如您所知,您无法通过 Core Data 中的瞬态属性查询排序。

有没有一种聪明的方法来保持这个属性瞬态并且仍然为我排序核心数据?我不想获取然后对自己进行排序,但我也想避免将这些临时信息存储在数据库中。

4

1 回答 1

5

如果您将日期存储在一个单独的实体中,那么您可以只获取日期并自行对它们进行排序。您将有一个从 Event 到 EventDate 的关系,以及一个相应的反向关系,可让您从给定的 EventDate 中找到事件。

建议:在您的 fetch 请求中指定一个排序描述符,以便您获得从年初开始排序的日期。然后您所要做的就是在返回的数组中找到当前日期,并将该点之前的所有内容移动到数组的末尾。

使 EventDate->Event 关系为多,因为可能会发生多个 Event 落在同一日期。像这样设置您的模型为您提供了一个很好的属性,您可以轻松回答“日期 X 发生什么事件?”这个问题。

于 2011-05-05T04:04:07.660 回答