2013-07-30 65 views
0

我有一個NSPredicate使用搜索Core DataNSPredicate串

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"objID == %@ AND createDate >= %@ AND createDate <= %@",self.objID, self.fromDate, self.toDate]; 

我想擴大這個謂詞包括日期範圍或如果「CREATEDATE」是零。我不熟悉SQL類型的搜索。我想查找所有Core Data實體與objID和日期範圍內或無。

if (objID == X && ((dateRange >= fromDate && dateRange <= toDate) || dateRange == nil)) 

我該怎麼辦?

+0

您是否嘗試將其轉換爲謂詞? – Wain

回答

1
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"objID == %@ AND (createDate >= %@ AND createDate <= %@ OR createDate = nil)",self.objID, self.fromDate, self.toDate]; 

我剛剛加了OR createDate = nil

檢查this答案。克里斯托弗Pickslay說,你可以使用「無」或「NULL」,但不是「NIL」。

+0

我不需要擔心他們像一個如果stmt組? – Padin215

+1

@ Log139,NSPredicate根據邏輯代數對語句進行分組。 A和B或C等於(A和B)或C –

+0

@ Log139,對不起,我沒有標記括號。我會編輯我的帖子 –