Swift Core Data从特定日期获取结果

时间:2016-03-20 16:46:25

标签: ios swift core-data

我对ioS dev相当新,所以这可能是显而易见的。

使用核心数据,我有一个实体:'发布' ,具有" dateAdded"的属性。

当用户在日历上选择NSDate时 - 我想仅获取当天的所有条目并将其加载到表格中。

我在考虑使用谓词,其中dateAdded(NSDate)将等于calendarSelectedNSDate。但是我不认为这会有效,因为他们的NSD由于时间的不同会有所不同。

我真的很感激解决方案!谢谢!

1 个答案:

答案 0 :(得分:3)

使用NSCalendar计算所选日期的开始和结束并创建谓词:

// get the current calendar
let calendar = NSCalendar.currentCalendar()
// get the start of the day of the selected date
let startDate = calendar.startOfDayForDate(calendarSelectedNSDate)
// get the start of the day after the selected date
let endDate = calendar.dateByAddingUnit(.Day, value: 1, toDate: startDate, options: NSCalendarOptions())!
// create a predicate to filter between start date and end date
let predicate = NSPredicate(format: "dateAdded >= %@ AND dateAdded < %@", startDate, endDate)