我有兩個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 <=%@)」'? –
正確,刷新網站:)我已經做了一些修復。 –