0

因此,我使用以下代码在 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 docs 建议是错误的:https ://www.parse.com/docs/ios_guide#objects-pointers/iOS我可以将类似内容存储在帖子而不是用户上,但这意味着我必须打开禁止访问该帖子的权限

4

1 回答 1

0

您的数据库结构存在问题。您不应该只拥有 User 对象,还应该拥有 Post 对象。该帖子可以具有指向所有喜欢该帖子的用户的点赞关系。当用户喜欢帖子时,用户就会被添加到帖子的点赞关系中。因此,要获得所需的信息,您只需要查看 Post 的关系即可。

您对 Post 的开放访问权是什么意思?您是否希望帖子仅供所有用户阅读,但发布该帖子的用户除外?

还是授予对 User 对象的访问权限的问题?我不确定这是否真的是一个问题,因为您可以快速计算关系中的用户对象,而无需实际查看用户对象中的数据。您可以创建 Like 对象,但我认为没有必要。

于 2015-03-19T01:20:23.203 回答