我有一个带有 NSDate
属性的核心数据模型。我想按天过滤数据库。我假设解决方案将涉及 NSPredicate
,但我不确定如何将它们组合在一起。
我知道如何使用 NSDateComponents
和 NSCalendar
比较两个 NSDate
的日期,但是如何使用 过滤它>NSPredicate
?
也许我需要在我的 NSManagedObject
子类上创建一个类别,该类别可以返回仅包含年、月和日的裸日期。然后我可以在 NSPredicate
中进行比较。这是您的建议,还是有更简单的方法?
最佳答案
给定一个 NSDate * startDate 和 endDate 以及一个 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/