用于查找自日期以来x天的核心数据谓词

Mar*_*rio -1 iphone core-data objective-c nspredicate ios

我有核心数据模型:

Book
----
name 
release_date 
Run Code Online (Sandbox Code Playgroud)

我需要从release_date中获取至少两天的所有书籍,
并且我想要这样做NSPredicate(不要将所有书籍加载到内存中,而不是循环和检查)

我正在寻找的是这样的:

NSDate *now = [NSDate date];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"release_date + "48 hours" <= %@", now];
Run Code Online (Sandbox Code Playgroud)

Wai*_*ain 5

谓词不会更改您的日期.您应该创建适当的日期(基于当前日期和使用NSDateComponents)并将其传递给谓词.您可以<=在谓词中使用过滤器来查找旧日期.


换句话说,不要将问题视为:

@"release_date + "48 hours" <= %@", now
Run Code Online (Sandbox Code Playgroud)

把它想象成:

@"release_date <= %@", now - "48 hours"
Run Code Online (Sandbox Code Playgroud)

所以问题只是让now - "48 hours"日期传递给谓词.