我的應用程序使用Parse作爲後端。在應用程序的某個時刻,我必須查詢應該包含至少一個另一個數組中的標籤的對象。爲了說清楚,在數據庫中,我有一個類圖片,它具有標籤屬性,可以將標籤保存在數組中。在我的應用程序中,我有一組需要比較的標籤。只有至少有一個標籤存儲在Tags屬性中的對象應該被獲取。我試圖使用以下PFQuery函數whereKey:containedIn:和whereKey:containsAllObjectsInArray:然而,他們都沒有做我想做的。現在我將注意力轉移到NSPredicates。我試過如下:使用NSPredicate實現高效的PFQuery
PFQuery *postsQuery = [PFQuery queryWithClassName:@"Pictures" predicate:[NSPredicate predicateWithFormat:@"ANY Tags MATCHES ANY ", _tags]];
當我運行收到以下錯誤代碼:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "ANY Tags MATCHES ANY "'
我怎樣才能執行這樣的查詢或我的情況的權利NSPredicate?
由於該查詢應該是關於進一步解釋什麼一個例證: 假設在數據庫中的對象之一已在「標籤」下面列
Tags = ["music", "video", "picture", "chocolate"]
和標籤陣列,我想在謂語使用如下:
tagsArray = @["picture", "French"];
什麼,我期待在接收以前的對象,因爲它具有「圖片」標籤。如果另一個對象不包含tagsArray中的至少一個標記,則不應該獲取它。
編輯: 我發現我不能使用聚合操作,如ANY,SOME,ALL或NONE。我能找到另一種解決方案嗎
好的,謝謝,我會嘗試 – HusseinB