核心数据,“按瞬态属性排序”解决方法

时间:2011-05-05 03:45:20

标签: ios sorting core-data transient

假设我有一个名为Event的核心数据实体,它代表经常性(年度)事件。每个活动都有一个“日期”属性。

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

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

是否有一种智能方法可以保持此属性的瞬态,并且仍然可以为我排序Core Data?我不想获取然后对自己进行排序,但我也想避免将此瞬态信息存储在数据库中。

1 个答案:

答案 0 :(得分:5)

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

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

将EventDate->事件关系设为多个,因为可能会发生多个事件属于同一日期。像这样设置你的模型给你一个很好的属性,你可以很容易地回答“在日期X发生什么事件?”的问题。