我创建的 Core Data 模型包含一个具有 timestamp
属性的 Session
实体。我目前正在寻找一种有效的方法来查询连续天数的核心数据。换句话说,如果用户在过去六天内每天都创建了一个 session ,则连续天数等于六。
乍一看,这个问题似乎无法通过巧妙的查询来解决。我是不是忽略了什么?
另一种解决方案是向 Core Data 请求一批 session ,并手动计算连续的天数,直到链条中断。是否有任何我遗漏的解决方案?
最佳答案
我认为执行此操作的一个好方法是覆盖 awakeFromInsert
,假设您正在创建时间戳。就在那里,您可以查询前几天(使用谓词比较一天的开始和结束很容易)并存储数字。我认为这并不夸张或多余,存储一个 int
很便宜。
现在您的程序中的逻辑变得非常简单:天数随时可用;您可以计算连续 session 的历史记录;您可以轻松找到序列中的所有日期,包括一天多个 session 等。
关于ios - 核心数据 : Count Number of Consecutive Days,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28175937/