Z S*_*Z S 10 core-data objective-c nspredicate
我很难为"最近完成"任务编写一个谓词,即如果它在过去7天内完成,则显示该任务.我想我需要做这样的事情:"如果现在<dateCompleted + 7天".
dateCompleted是表上的一个属性,但我不确定我应该如何获得它的值并在谓词中添加7天.我想在编写NSPredicate之前我需要先获取属性值,但是怎么样?此时我无法访问managedObject.
这可能是解决方案的结果,但我无法弄清楚如何定义'oneWeek',我认为你不能在定义谓词时添加值:
NSPredicate *pred = [NSPredicate predicateWithFormat:@"%@ < todoCompletedDate + %@", [NSDate date], oneWeek];
Run Code Online (Sandbox Code Playgroud)
mmc*_*omb 18
你快到了.
首先,您需要定义日期范围.要做到这一点,你需要从今天的日期开始,然后添加几周的时间来找到有效范围的结束.获得该范围后,您可以构建谓词以查找截止日期> = start和<= end的所有任务.这是我编写的一些非常相似的代码的摘录......
NSDate *today = [NSDate date];
NSDate *startOfToday = [DateHelper startOfDay:today];
NSDate *endOfWeek = [DateHelper addDaysToDate:today daysToAdd:6];
return [NSPredicate predicateWithFormat:@"(dueDate >= %@) AND (dueDate <= %@) AND complete == 0", startOfToday, endOfWeek];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11445 次 |
| 最近记录: |