Parse.com获取喜欢对象的用户

时间:2015-03-19 00:48:44

标签: ios swift parse-platform pfrelation

所以我使用以下代码在Parse中正确设置了我的关系:

var user = PFUser.currentUser() var relation = user.relationForKey("likes") relation.addObject(self.post) user.saveInBackgroundWithBlock({ (Bool, error) -> Void in println("user likes this post") // Used for tracking in the PFTableCell for UI parts self.userLikes = true })

当视图加载时,我需要将按钮更改为Liked和颜色等。我想让所有喜欢这篇特定帖子但却无法弄清楚查询的用户?它会给我一些其他有用的信息(例如,我可以显示喜欢该帖子的人的用户名)。

作为一种解决方法,我可以通过以下方式获取用户喜欢的所有帖子:

var user = PFUser.currentUser()
var relation = user.relationForKey("likes")
relation.query().findObjectsInBackgroundWithBlock {
    (objects: [AnyObject]!, error: NSError!) -> Void in
    if error != nil {
        // There was an error
        println(error)
    } else {
        // objects has all the Posts the current user liked and do something.
        println(objects)         
    }
}

但那不是我之后的事吗?我使用的是Swift和Parse SDK,但很乐意在Obj C中得到答案,我会翻译。 Parse文档建议是错误的:https://www.parse.com/docs/ios_guide#objects-pointers/iOS我可以将帖子存储在帖子而不是用户,但这意味着我必须打开帖子的访问权限,这是一个禁忌< / p>

1 个答案:

答案 0 :(得分:0)

您的数据库结构存在问题。你不应该只有User对象,但你也应该有Post对象。邮政可以有一个喜欢的关系,指向所有喜欢这篇文章的用户。当用户喜欢帖子时,则将用户添加到帖子的喜欢关系中。因此,要获得所需的信息,您只需要查看Post的关系。

您对邮政的开放访问权限是什么意思?您是否希望仅对除发布用户的用户以外的所有用户读取帖子?

或者是否允许访问User对象?我不确定它是否真的是一个问题,因为您可以快速计算关系中的User对象而不实际查看User对象中的数据。你可以创建Like对象,但我认为没必要。