【发布时间】:2013-12-27 11:15:10
【问题描述】:
我正在尝试根据特定键中的值过滤对象的 NSArray。我的对象有一个创建日期,所以基本上,我想创建三个月的对象,但每周只显示一个,因此,我需要过滤结果以根据日期显示对象。
我有一个数据库,其中包含创建这些对象所需的所有信息。我的第一个想法是在这个数据库中创建一个句点键,指定对象可用的时间。例如,对象 1 的“period”键中将包含数字 604800(一周的时间间隔)。现在,为了检索这些对象,我需要比较两个键,createdAt 是 NSDate,timeInterval 是 NSNumber。
我尝试在我的表中创建两个 NSDatecolumns 并使用谓词:[NSPredicate predicateWithFormat:"(startDate <= %@) AND (endDate >= %@"), today, today];,虽然我需要做更多的工作来创建带有这两个添加列的对象,但提到的谓词不起作用,我不确定为什么。
无论如何,我正在寻找一个简单的解决方案和一些代码。
【问题讨论】:
-
您的
"看起来放错了位置.. 检查一次 -
是的,抱歉,这是一个输入错误,但不是问题。
-
如果你通过
today两次(<=和>=),那不是只给你完全相等(==)吗? -
存储在数组中的对象的结构(属性及其类)是什么?可能您需要将谓词更改为
[NSPredicate predicateWithFormat:@"(SELF.startDate <= %@) AND (SELF.endDate >= %@)", today, today];或使用sortedArrayUsingFunction:。
标签: ios objective-c nspredicate