所以我使用以下代码在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>
答案 0 :(得分:0)
您的数据库结构存在问题。你不应该只有User对象,但你也应该有Post对象。邮政可以有一个喜欢的关系,指向所有喜欢这篇文章的用户。当用户喜欢帖子时,则将用户添加到帖子的喜欢关系中。因此,要获得所需的信息,您只需要查看Post的关系。
您对邮政的开放访问权限是什么意思?您是否希望仅对除发布用户的用户以外的所有用户读取帖子?
或者是否允许访问User对象?我不确定它是否真的是一个问题,因为您可以快速计算关系中的User对象而不实际查看User对象中的数据。你可以创建Like对象,但我认为没必要。