CoreData NSPredicate 按日期获取数据

Posted

技术标签:

【中文标题】CoreData NSPredicate 按日期获取数据【英文标题】:CoreData NSPredicate fetch data by Date 【发布时间】:2015-01-29 10:38:16 【问题描述】:

请帮我做这个谓词

[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"subsidiary_of_cat_id == %@ AND (valid_from < %@) AND (valid_till > %@ OR valid_till == %@) ",catId,[NSDate date],[NSDate date], dateTo,]]

接收崩溃错误:无法解析格式字符串

从CoreData获取数据的条件

条件 1:now() 条件二:now() > valid_from

谢谢!

已解决:更新代码

NSMutableArray *predicatesArray = [NSMutableArray array];
    [predicatesArray addObject:[NSPredicate predicateWithFormat:@"%@ == subsidiary_of_cat_id",catId]];
    [predicatesArray addObject:[NSPredicate predicateWithFormat:@"%@ > valid_from",[NSDate date]]];
    [predicatesArray addObject:[NSPredicate predicateWithFormat:@"%@ < valid_till",[NSDate date]]];
    [predicatesArray addObject:[NSPredicate predicateWithFormat:@"%@ == valid_till”,dateTo];
[NSCompoundPredicate orPredicateWithSubpredicates:predicatesArray]

【问题讨论】:

我已经通过 [NSCompoundPredicate orPredicateWithSubpredicates:predicatesArray] 解决了它 【参考方案1】:

您不需要将字符串包装在stringWithFormat

[NSPredicate predicateWithFormat:@"subsidiary_of_cat_id == %@ AND (valid_from < %@) AND (valid_till > %@ OR valid_till == %@) ",catId,[NSDate date],[NSDate date], dateTo];

【讨论】:

以上是关于CoreData NSPredicate 按日期获取数据的主要内容,如果未能解决你的问题,请参考以下文章

CoreData NSPredicate 按日期获取数据

coredata NSPredicate 中的日期比较

NSPredicate 返回重复值

NSPredicate 在 CoreData 中按字母顺序获取记录

NSPredicate 与核心数据问题

有没有办法根据存储在 CoreData 中的实际值来设置 NSPredicate?