我正在尝试使用Parse中的指针进行查询。
基本上我有两个课程"commentsTable"
和"_User"
,我希望在确定的帖子上收到来自课程"commentsTable"
的用户的评论,然后获取username
以及来自班级profile_pic
"_User"
func loadAndShowComments(){
let query2 = PFQuery(className: "commentsTable")
query2.orderByDescending("createdAt")
query2.whereKey("newsColumns", equalTo: printteste!)
query2.includeKey("username")
query2.findObjectsInBackgroundWithBlock {
(objects: [PFObject]?, error: NSError?) -> Void in
if let objects = objects as [PFObject]? {
for object in objects {
print(object["commentColumn"])
}
}
for cardset in objects! {
var lesson = cardset["username"] as! PFObject
var name = lesson["username"] as! String
print("By user: \(name)")
}
我能够看到查询,我打印结果我有以下输出:
This is a post!
This is a test post!
By user: teste@teste.com
By user: mmachado
在我的应用程序中,我在TableView中显示此信息,我成功地可以在函数cellForRowAtIndexPath
中显示查询的结果:
if let usuarioComentario = object?["commentColumn"] as? String {
cell?.usuarioComentario?.text = usuarioComentario
}
但是我无法返回其他课程的值_User
我想我误解了一些概念但是在这一点上我不知道什么概念,任何想法?
感谢。
答案 0 :(得分:3)
使用query2.includeKey("username")
,您已检索与每个User
对象关联的commentsTable
数据的所有。
您可以使用以下方式访问相关的User
数据。
if let commentUser = object["username"] as? PFUser {
let name = commentUser["username"] as! String
let profilePicture = commentUser["profile_pic"] as! PFFile
}
您需要将查询结果存储到数组中以供以后使用(如果您尚未使用)。如果您使用的是Parse提供的PFQueryTableViewController
,则会通过实施queryForTable()
方法为您处理,结果会自动存储在名为objects
的字典数组中。
值得注意的是,您还必须加载PFFile
,因为它们未包含在查询结果中。您需要将PFFile
分配给PFImageView
,然后拨打loadInBackground
。请参阅下面的示例。
let imageView = PFImageView()
// Set placeholder image
imageView.image = UIImage(named: "placeholder")
// Set remote image
imageView.file = profilePicture
// Once the download completes, the remote image will be displayed
imageView.loadInBackground { (image: UIImage?, error: NSError?) -> Void in
if (error != nil) {
// Log details of the failure
println("Error: \(error!) \(error!.userInfo!)")
} else {
println("image loaded")
}
}
最后,我建议将User
中commentsTable
指针的名称从“用户名”更改为“用户”,这样就不会与用户类的用户名字段混淆。 Here's a link to a great tutorial which you may also find helpful