objective-c - NSPredicate:按 NSDate 属性的日期过滤对象

我有一个带有 NSDate 属性的核心数据模型。我想按天过滤数据库。我假设解决方案将涉及 NSPredicate,但我不确定如何将它们组合在一起。

我知道如何使用 NSDateComponentsNSCalendar 比较两个 NSDate 的日期,但是如何使用 过滤它>NSPredicate?

也许我需要在我的 NSManagedObject 子类上创建一个类别,该类别可以返回仅包含年、月和日的裸日期。然后我可以在 NSPredicate 中进行比较。这是您的建议,还是有更简单的方法?

最佳答案

给定一个 NSDate * startDateendDate 以及一个 NSManagedObjectContext * moc:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(date >= %@) AND (date <= %@)", startDate, endDate];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:[NSEntityDescription entityForName:@"EntityName" inManagedObjectContext:moc]];
[request setPredicate:predicate];

NSError *error = nil;
NSArray *results = [moc executeFetchRequest:request error:&error];

https://stackoverflow.com/questions/1965331/

相关文章:

ios - 如何使用 NSCache

objective-c - Objective-C 中的选择器?

iphone - Storyboard - 引用 AppDelegate 中的 ViewContro

iphone - -all_load 链接器标志有什么作用?

objective-c - 如何使一个类符合 Swift 中的协议(protocol)?

iphone - SplitView 就像 iPhone 上的 Facebook 应用程序

objective-c - 如何在 iPhone 模拟器中更改时间和时区?

iphone - 使用 CALayers 的圆形 UIView - 只有一些角落 - 如何?

objective-c - 这个 gdb 输出是什么意思?

iphone - 检测导航栏上的 'back' 按钮何时被按下