【问题标题】:Swift & Parse - Am trying to retrieve a username with a query.Swift & Parse - 我正在尝试通过查询检索用户名。
【发布时间】:2018-06-19 03:08:08
【问题描述】:

我正在尝试检索属于某个帖子的用户名。但是,用户名可以在另一个类中找到。

这是我的两个课程: Post User

我在 UICollectionView 中填充 Posts 类中的所有信息,但由于用户名在 User 类中,因此我的查询不起作用。这是我的代码...

 //QUERY LOST

    let querylost = PFQuery(className: "Post")
    querylost.order(byDescending: "createdAt")
    querylost.whereKey("lostfound", equalTo: "lost")
    querylost.findObjectsInBackground { (objects, error) in

        if let posts = objects {

            for post in posts {


                self.addresslost.append(post["address"] as! String)

                self.breedlost.append(post["breed"] as! String)

                self.phonelost.append(post["phone"] as! String)

                self.imageFileslost.append(post["imageFile"] as! PFFile)

                //HERE'S THE PROBLEM - username is in User Class

                self.usernames.append(self.queryusers[post["userid"] as! String]!)

                //ENDS here

                self.lostCollectionView.reloadData()

                self.refresherLost.endRefreshing()


            }
        }
    }

    //TO SHOW DATA

    scrollView.delegate = self
    lostCollectionView.delegate = self
    lostCollectionView.dataSource = self

}

【问题讨论】:

    标签: swift parse-platform pfquery pfuser


    【解决方案1】:

    不要使用userid 字段,您应该创建一个指针来放置在您的 Post 对象上。然后您可以通过 Post 对象访问 User 对象。

    您的代码将如下所示:

    let querylost = PFQuery(className: "Post")
    querylost.order(byDescending: "createdAt")
    querylost.include("user")
    querylost.whereKey("lostfound", equalTo: "lost")
    querylost.findObjectsInBackground { (objects, error) in
    
        if let posts = objects {
    
            for post in posts {
    
    
                self.addresslost.append(post["address"] as! String)
    
                self.breedlost.append(post["breed"] as! String)
    
                self.phonelost.append(post["phone"] as! String)
    
                self.imageFileslost.append(post["imageFile"] as! PFFile)
    
                //unwrap the user pointer, and get the username
                if let user = post["user"] as? PFUser, let username = user.username{
                    self.usernames.append(username) 
                }
    
                //ENDS here
    
                self.lostCollectionView.reloadData()
    
                self.refresherLost.endRefreshing()
    
    
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-27
      • 1970-01-01
      • 2020-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多