从过去 7 天的核心数据中提取实体
Posted
技术标签:
【中文标题】从过去 7 天的核心数据中提取实体【英文标题】:Extract entity from last seven days core data 【发布时间】:2016-02-13 10:37:15 【问题描述】:我目前正在使用核心数据来存储膳食。我的实体是日期(Date)、食物(字符串)和饮料(字符串)。现在我想提取过去 7 天储存的所有食物。我该怎么做?我知道我应该以某种方式使用 NSPredicate,但我不知道具体如何。
【问题讨论】:
【参考方案1】:获取当前日历
let calendar = NSCalendar.currentCalendar()
获取当前日期
let now = NSDate()
从当前日期减去 7 天
let sevenDaysAgo = calendar.dateByAddingUnit(.Day, value: -7, toDate: now, options: [])!
获取 7 天前一天的开始
let startDate = calendar.startOfDayForDate(sevenDaysAgo)
创建谓词,文字date
是Core Data属性
let predicate = NSPredicate(format:"(date >= %@) AND (date < %@)", startDate, now)
【讨论】:
非常感谢!但是我怎么能一次提取一天(但仍然是全部 7 天)?我想这样做的原因是因为我想在每天有多个存储值的日子里取平均值。或者也许有更好的方法来做到这一点? 使用此谓词执行获取请求会返回一个包含所有匹配条件的对象的数组。添加排序描述符以获取排序数组。然后枚举数组。或者每天使用一个提取请求。 这是过去 2 天的数据,单天减去 1 并将值保存在变量中。然后在一个循环中将变量取为end date
,再减一,保存在变量中,取新的值为start date
。以上是关于从过去 7 天的核心数据中提取实体的主要内容,如果未能解决你的问题,请参考以下文章
在 Bigquery - 如何从 Firebase 事件表中查询昨天的数据和过去 7 天的数据