2014-03-01 79 views
3

我在解析中有一個Game類,其中一個屬性爲participants,這是一個NSStrings用戶名數組。我的目標是執行一個基於NSArray的用戶名(稱爲selectedParticipants)的PFQuery,以便在找到與participants找到的用戶名完全匹配的情況下返回Game對象。如何使用PFQuery查詢與數組完全匹配?

然而,當我使用

[queryForGames whereKey:@"participants" equalTo:selectedParticipants]; 

我得到的是我不能做基於陣列(Cannot do a comparison query for type: __NSArrayM)對比查詢時出現錯誤。我還嘗試了Parse reference指南中列出的幾種其他類型的查詢,例如使用whereKey:containsAllObjectsInArray:,但它們將返回包含除equalTo:selectedParticipants中的用戶名之外的用戶名的無關對象Game。有沒有一種方法可以通過使用PFQuery的數組完全匹配查詢?

謝謝!

回答

5

iOS Developer Guide on array queries

[query whereKey:@"participants" containsAllObjectsInArray:selectedParticipants]; 

從我可以告訴似乎沒有被查詢到數組沒有額外的元素完全一致,但你可以添加一個語句來檢查元素的數量在selectedParticipants陣列中針對返回的參與者。如果它們相等,那麼它是完全匹配的。

+0

謝謝你的建議 - 這是一個好主意!雖然它會返回一些無關的對象,但本地檢查很好。 – daspianist

2

您可以創建一個cloud function,它對數組內容運行「寬泛」查詢,然後在返回結果之前過濾掉所有其他項目。這與應用程序和數據存儲的調用次數相同,但比將無關數據發回應用程序更有效。

相關問題