我有一个带有日期字段的实体,我想选择给定年份的记录。如何为工作构建 NSPredicate?在 Core Data 中没有找到任何关于日期函数(如果有的话)
谢谢
最佳答案
最终我或多或少按照 Wienke 的建议做了。要创建获取特定年份记录的谓词,我是这样做的:
- (NSPredicate*) predicateFromYear:(NSInteger)start span:(NSInteger)aSpan {
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *dc = [NSDateComponents new];
[dc setYear:start];
NSDate *startDate,*endDate;
startDate = [cal dateFromComponents:dc];
[dc setYear:aSpan];
endDate = [cal
dateByAddingComponents:dc
toDate:startDate
options:0];
[dc release];
return [NSPredicate predicateWithFormat:
@"date >= CAST(%f, \"NSDate\") AND date < CAST(%f, \"NSDate\")",
[startDate timeIntervalSinceReferenceDate],
[endDate timeIntervalSinceReferenceDate]]; }
关于iphone - NSPredicate 仅过滤日期字段的 "year"部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5365258/