2016-03-18 35 views
0

我在Parse DB中有一個「Event」類,它有兩個指針,分別稱爲「Feature」和「Network」。參閱下面的參考:在Parse數據庫中查詢具有多個指針的類

enter image description here

我想要檢索由具有的功能和在所選擇的網絡中的選定陣列事件類對象。 我試着做如下查詢:

func getEventsByFilter(networks: [Network]?, features: [Feature]?,completion: (events: [Event]?, error: NSError?) ->()) { 
    let query = PFQuery(className:"Event") 
    query.whereKey("feature", containedIn: features!) 
    query.whereKey("network", containedIn: networks!) 

不過,我得到以下錯誤,並且查詢返回的所有事件的事件類: [錯誤]:抓好「NSInvalidArgumentException」有理性「無效的類型在JSON寫入(MyApp.Network)「:

有關如何重寫查詢的任何建議,以便我可以獲取選定網絡中的事件並選擇功能?

任何幫助表示讚賞!謝謝!

+0

你有陣列網絡和功能定義爲PFObject嗎? –

+0

@MazelTov:功能和網絡是我的項目中的兩個不同的類。它們從NSObject繼承並通過PFObject進行初始化。 – Prasanthi

回答

1

確保功能和網絡是一個字符串數組(NSString for objC)。

解析鍵始終是String類型的對象ID或任何鍵值存儲。

EDIT

忘記添加對在「containedin:」解析將期望字符串數組作爲參數。

PFQuery *categoryQuery = [PFQuery queryWithClassName:kClassnameCategory]; 
[categoryQuery whereKey:kKeyCategoryName equalTo:self.listCategory]; 
[categoryQuery getFirstObjectInBackgroundWithBlock:^(PFObject * category, NSError * _Nullable error) { 

上面的代碼[categoryQuery whereKey:equalTo:]期待兩者的參數的字符串找到匹配,因爲所有解析鍵是字符串。在包含的情況下:它會期待一個字符串數組。

+0

請試試看,如果它解決了我的問題,請告訴我們。謝謝您的幫助! – Prasanthi

相關問題