NSPredicate仅在date字段的“年份”部分进行过滤
我有一个date字段的实体,我想select一个给定年份的logging。 如何build立一个NSP的工作呢? 核心数据中没有find关于date函数(如果有的话)的任何信息
谢谢
一种可能的方法:
步骤1)请参阅Apple的“date和时间编程指南”中的“从组件创builddate”。 使NSDate代表年份的开始,NSDate代表年份的结尾。
步骤2)然后,您可以构build一个谓词,用于searchdateattrs大于第一个date但小于最后一个date的对象。
谓词看起来像这样:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@“(inceptionDate > %@) AND (inceptionDate < %@)”, dateBeginYear, dateEndYear];
最终,我根据维克的build议做了更多或更less的事情。 要创build提取特定年份的logging的谓词,我的确如此:
- (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]]; }
- 最有效的方法来获得平均值,同时也筛选出一些对象
- Swift与Web服务器的核心数据同步
- 生成失败,错误命令/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc
- 如何将其他内容保存到我的UIManagedDocument文件包中?
- 核心数据Swift在优化的版本中抛出generics函数失败
- AlertController每次在swift ios嵌套条件下被popup
- 怪异的核心数据反应 – 不检测NSManagedObject子类
- 核心数据 – 如何获取具有最大值属性的实体
- 删除子视图,然后将其添加回来