简体   繁体   English

无法从Parse.com中的类获取用户指针

[英]Unable to get User pointer from a Class in Parse.com

I have a Class on Parse called "OnlineUsers" (screenshot below). 我在Parse上有一个名为“ OnlineUsers”的类(下面的屏幕截图)。 One of the fields is "user", which is a pointer to a user in the "User" table. 字段之一是“用户”,它是“用户”表中指向用户的指针。 My issue is that I cannot get the "User" pointer from the "OnlineUsers" class "users" field/object. 我的问题是我无法从“ OnlineUsers”类“ users”字段/对象获取“ User”指针。

在此处输入图片说明

The "user" field is a pointer to the a user in the "User" Class. “用户”字段是指向“用户”类中的用户的指针。 I am saving the data alright because when I click on the "user" field in class "OnlineUsers", i get taken to the Users class entry on Parse's web browser (see below). 我正在保存数据,因为当我单击类“ OnlineUsers”中的“用户”字段时,我进入了Parse的Web浏览器上的Users类条目(请参见下文)。

在此处输入图片说明

Now I am trying to get "user" field object from "OnlineUsers" class in the code below. 现在,我尝试从下面的代码中的“ OnlineUsers”类获取“用户”字段对象。 I have put the error also below. 我把错误也放在下面。

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")
        }

    })

}

The output of the println statements are as below (note only one gets printed): println语句的输出如下(注意仅打印一个):

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

Question is : Why does this never print anything? 问题是 :为什么这从不打印任何内容? println(userObject.username!) //THIS NEVER PRINTS println(userObject.username!) //从不打印

OK.. The trick is to use PFQuery includeKey to have the related pointer data automatically filled by Parse. 好的。诀窍是使用PFQuery includeKey来使相关指针数据由Parse自动填充。 The user data will be downloaded without requiring you to make another query for it. 用户数据将被下载,而无需您再次查询。

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

Try adding this line. 尝试添加此行。 Hope it helps... :) 希望能帮助到你... :)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM