2015-12-29 59 views
1

我正在使用NSPredicate从核心数据中获取项目。这些物品的创作时间必须在下午4点到6点之间。我如何使用NSPredicate来做到这一点?现在我正在使用:没有日期的NSPredicate时间戳

let predicate = NSPredicate(format: "time >= \(startTime) AND time <= \(endTime)") 

但是,这也考虑到日期,我只希望它检查时间。这是可能的使用NSPredicate或者我应该只抓取所有物品,手动删除日期,然后通过检查时间筛选出物品?

回答

0

实际上,您应该为实体添加一个“小时间戳”,当您的现有日期时间值更新时您可以自动设置这个时间戳,并且您可以将其用于提取谓词。预测和检查日期时间戳,但只能从< =>透视图(如当前代码使用)。

+0

谢谢,我想我必须改变我的实体。如果我将提取结果限制在500左右,然后手动进行过滤,您是否也知道它会给出多少性能下降? –

+0

处理500个项目会很快,但根据您所述的要求,我不明白你将如何选择500个项目返回(最新?) – Wain

+0

好吧,这是很好的知道。上面的例子只是我的代码的一小部分。原文有更多的谓词。我想最干净的方法仍然像你所建议的那样增加一小时时间戳。 –