我正在使用Parse的PFUser和PFRole類。現在我需要在UITableView中列出具有特定角色的用戶,這似乎是一個相當簡單的任務。如何設置PFQuery以使用queryForTable獲取給定角色的所有用戶?
所以我創建了一個PFQueryTableViewController和覆蓋queryForTable()
其內部的我試着先拿到角色,那麼它的用戶:
override func queryForTable() -> PFQuery {
let roleQuery: PFQuery? = PFRole.query()
roleQuery!.whereKey("name", equalTo: "admin")
var userQuery: PFQuery?
roleQuery!.getFirstObjectInBackgroundWithBlock {
(object: PFObject?, error: NSError?) -> Void in
if error == nil {
let role: PFRole? = object as? PFRole
let relation: PFRelation? = role!.relationForKey("users")
userQuery = relation!.query()
}
}
return userQuery!
}
但由於getFirstObjectInBackgroundWithBlock()
是異步的,這是應該的查詢是返回總是零。我也嘗試過getFirstObject()
,它是同步的,但在這種情況下,我得到以下警告:正在主線程上執行長時間運行的操作。
我敢肯定,必須有一個簡單的方法來設置此查詢...有沒有人有想法?先謝謝你!
大衛
首先運行角色查詢,然後在準備就緒時加載表,以便創建查詢所需的所有詳細信息。 – Wain
Hi @Wain,感謝您的快速回答。你將如何運行角色查詢_then_加載表?我試圖在init()方法中運行它,但出現以下錯誤:_類PFRole必須在使用Parse_之前使用registerSubclass註冊。 – davidg
這是你的根視圖控制器嗎?最好在前一個屏幕上獲得角色並將其傳入,如果需要,可以爲此添加新的啓動屏幕。 – Wain