斯威夫特 2.使用 Parse 我无法将 PFUser.query() 的结果保存在用户名数组中



我试图保存查询的结果,但当我试图将其保存在数组中时,它并没有做到这一点。这是我的代码:

let query = PFUser.query()
    query?.orderByDescending("puntaje")
    query?.limit = 50
    query?.findObjectsInBackgroundWithBlock({
        (users, error) -> Void in
        if let objects = users {
            for object in objects {
                self.usernames.removeAll(keepCapacity: true)
                self.scores.removeAll(keepCapacity: true)
                if let user = object as? PFUser {
                    print(user.username)
                    self.usernames.append(user.username!)
                    self.scores.append((user["puntaje"] as? Int)!)
                }
            }
        }
        print(self.usernames.count)

    })

打印user.username时,会显示所有用户名。

在打印中,它显示我有0个用户名。

您需要移动

self.usernames.removeAll(keepCapacity: true)
self.scores.removeAll(keepCapacity: true)

在"for"循环上方。下方

if let objects = users {

我找到了另一种方法。我用过:

let query = PFUser.query()
    query?.orderByDescending("puntaje")
    query?.limit = 50
    do {
        if let users = try query?.findObjects() {
            for user in users as! [PFUser] {
                let name = user.username!
                self.usernames.append(name)
                self.scores.append((user["puntaje"] as? Int)!)
            }
        }
    }catch {
        print(error)
    }

最新更新