核心数据如何获取自上周日以来增加的entires?

时间:2016-08-18 17:25:57

标签: ios swift core-data

我有一个核心数据实体。每个条目的创建日期都保存为实体中的一个属性。我想显示自上次星期日到当天的所有条目。我该如何执行此操作?。我还要添加作为属性进入的那天???

2 个答案:

答案 0 :(得分:1)

这将帮助您获取上一个星期日的日期调整您所在星期几的值,然后将检索的日期与此日期进行比较

extension NSDate {

func dayOfWeek() -> Int? {
    if
        let cal: NSCalendar = NSCalendar.currentCalendar(),
        let comp: NSDateComponents = cal.components(.Weekday, fromDate: self) {
            return comp.weekday
    } else {
        return nil
    }
  }
}

 let calendar = NSCalendar.currentCalendar()
 let lastSundayDate = calendar.dateByAddingUnit(.Day , value: -NSDate().dayOfWeek()!, toDate: NSDate(), options: [])

答案 1 :(得分:1)

查找最后一个星期日的推荐方法是nextDateAfterDate:components:options: NSCalendar向后搜索

let components = NSDateComponents()
components.weekday = 1 // 1 = sunday
let lastSunday = NSCalendar.currentCalendar().nextDateAfterDate(NSDate(), matchingComponents: components, options: [.SearchBackwards, .MatchNextTime])

将获取谓词设置为考虑(>)lastSunday

之后的日期