我有两个NSDate的性质的实体:核心数据提取谓词的NSDate
@property NSDate *startTime;
@property NSDate *endTime;
我用它来创建点事件和时间的事件。所以,对于点事件endTime
可以等于零。
,我想取得与限制所有实体:开始时间> =的minDate & &结束时间< =的maxDate
但NSPredicate,如:
NSDate *startTime = [[NSUserDefaults standardUserDefaults] objectForKey:@"firstBound"];
NSDate *endTime = [[NSUserDefaults standardUserDefaults] objectForKey:@"secondBound"];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"(startTime >= %@) AND ((endTime <= %@) OR (endTime == nil))",startTime,endTime]];
无法正常工作。我会解释。如果存储在数据库中的所有事件都处于2000-2010年范围内,并且我正在使用minDate = 1900进行提取,则maxDate = 1950每个来自数据库的点事件都符合此谓词,因为它们的endTime字段为零,而字段startTime明显多于minDate。
任何想法如何处理?不受NSPredicate限制。我会处理任何决定。
在谓语开启和关闭括号不匹配。谓词中的“e”是什么? - 不应该是'“startTime> =%@ AND(endTime ==零或endTime <=%@)”'? –
正确,刷新网站:)我已经做了一些修复。 –