【问题标题】:Unable to get User pointer from a Class in Parse.com无法从 Parse.com 中的类获取用户指针
【发布时间】:2015-05-20 04:19:22
【问题描述】:

我在 Parse 上有一个名为“OnlineUsers”的类(下面的屏幕截图)。其中一个字段是“用户”,它是指向“用户”表中的用户的指针。我的问题是我无法从“OnlineUsers”类“用户”字段/对象中获取“用户”指针。

“用户”字段是指向“用户”类中的用户的指针。我正在保存数据,因为当我单击“OnlineUsers”类中的“用户”字段时,我会被带到 Parse 的网络浏览器上的用户类条目(见下文)。

现在我正在尝试从下面代码中的“OnlineUsers”类中获取“用户”字段对象。我也把错误放在下面。

func printobJectIdsWithoutMe() {
    let usersToPrint = PFQuery(className: "OnlineUsers")

    usersToPrint.whereKey("user", notEqualTo: PFUser.currentUser()!)

    usersToPrint.findObjectsInBackgroundWithBlock({ (results:[AnyObject]?, error:NSError?) -> Void in

        if error == nil {
            if results!.count > 0 {
                println("launchChatwithRandomUser() -- There are more than zero objects in Class, results.count = " + String(results!.count))

                let usersOnlineNow = results as! [PFObject]

                for user in usersOnlineNow {
                    //println(user["user"]!.objectId)
                    let userObject:PFUser = user["user"]as! PFUser
                    println(userObject.username!)  //THIS NEVER PRINTS
                }

            } else {
                println("launchChatwithRandomUser() -- There are ZERO objects in Class, results.count = " + String(results!.count))

            }
        } else {
            println("failed with error in usersToPrint.findObjectsInBackgroundWithBlock")
        }

    })

}

println 语句的输出如下(注意只打印一个):

launchChatwithRandomUser() -- There are more than zero objects in Class, results.count = 2

问题是:为什么这从不打印任何东西? println(userObject.username!) //这永远不会打印

【问题讨论】:

  • 会导致越界错误吗?尝试从 randomNumber 中删除 +1。也许,那是造成问题的原因。假设您有 5 个对象,因此,如果您想将随机数用作结果数组中的索引,则随机数应介于 0 到 4 之间而不是 1 到 5 之间。让我知道它是否有效
  • 嘿——我不认为这是随机数,我有一些更基本的错误。我更新了一个更简单的。我只是无法获得用户对象。请参阅上面的示例。

标签: ios swift parse-platform


【解决方案1】:

OK.. 诀窍是使用 PFQuery includeKey 让 Parse 自动填充相关的指针数据。用户数据将被下载,无需您再次查询。

let usersToPrint = PFQuery(className: "OnlineUsers")    
query.includeKey("User") 

尝试添加此行。希望对您有所帮助... :)

【讨论】:

  • 啊,完美。你是绝对正确的......我错过了includeKey。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多