我创建的核心数据模型包含Session
个实体,该实体具有timestamp
属性。我目前正在寻找一种有效的方式来查询核心数据的连续天数。换句话说,如果用户在过去六天内每天创建一个会话,则连续天数等于六。
乍一看,似乎这个问题可以通过聪明的查询来解决。我忽略了什么吗?
另一种解决方案是向核心数据询问一批会话,并手动计算链断裂前的连续天数。我有什么解决方案吗?
答案 0 :(得分:1)
我认为一个很好的方法是覆盖awakeFromInsert
,大概是你在创建时间戳。在那里,您可以查询前几天(使用谓词比较开始和结束时很容易)并存储该数字。我认为这并不夸张或多余,存储int
很便宜。
现在程序中的逻辑变得轻松愉快:天数随时可用;你可以计算连续会话的历史记录;您可以轻松找到序列中的所有日期,包括每天多个会话等。