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

mip*_*ips 11 sorting core-data transient ios

假设我有一个名为Event的Core Data实体,它代表周期性(年度)事件.每个活动都有一个"日期"属性.

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

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

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

Cal*_*leb 5

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

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

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

  • +1日期看起来很复杂.您经常发现自己必须创建相当详细的模型来处理它们. (3认同)