ios - 如何设置 PFQuery 以使用 queryForTable 获取具有给定角色的所有用户?

标签 ios swift uitableview parse-platform pfquery

我正在使用 Parse 的 PFUser 和 PFRole 类。现在我需要在 UITableView 中列出具有特定角色的用户,这似乎是一个相当简单的任务。

因此,我创建了一个 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() 是异步的,因此应该返回的查询始终为 nil。我还尝试了同步的 getFirstObject(),但在这种情况下我收到以下警告:正在主线程上执行长时间运行的操作。

我确信一定有一个简单的方法来设置这个查询......有人有想法吗?预先感谢您!

大卫

最佳答案

我在解析和异步查询方面遇到了类似的问题,并且我以不同的方式解决了它。 您可以在调用 View Controller 中的下载函数的函数中使用闭包。 例如。当您开始下载数据时,在表格 View 上显示事件指示器,如果搜索已结束并成功,则在

if error == nil { //here you can populate your table in your view by using a closure function }

这里是有关如何使用闭包的文档的链接: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html#//apple_ref/doc/uid/TP40014097-CH11-ID103

关于ios - 如何设置 PFQuery 以使用 queryForTable 获取具有给定角色的所有用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32711714/

相关文章:

ios - 在 XCODE 7(swift 2)-CGPOINTMAKE 中构建我的第一款游戏?

iOS 报亭 : push notification does not launch the app in background

ios - 仅当文本字段为空时如何显示图像?

ios - 如何从表格中删除单元格

swift - 在标准 View Controller 中更改 TableView 单元格

ios - 从 UITableView 获取 "Pull to Refresh"的最佳方法是什么?

ios - 如何将 tintColor 保留在 UIButton 中然后单击它?

ios - 从 ModalViewController 返回后键盘没有出现

iOS-选择整数数组中第二小的数字

ios - 喜欢按钮状态未保存