我有一个相当典型的评论帖后期应用我试图建立乐趣。我的问题是当我将评论保存到现有帖子时(有一个帖子 - 多条评论关系),评论被保存并理解其与帖子的关系,但帖子不知道评论。
我想要的是什么:
Posts: post "Foo" | comments: "X", "Y" | other columns
Comments:
comment "X" | post "Foo" | ...
comment "Y" | post "Foo" | ...
现在: 评论看起来不错,但帖子缺少一对多的关系
Posts: post "Foo" | <NOTHING> | other columns
我尝试了两种不同的方式来保存对帖子的评论:
1)创建评论作为Post的孩子,保存帖子。根据{{3}},这很好,即使我们对post对象执行保存,确实会保存注释。但这篇文章并未将评论视为孩子。
// Inside comment class
let pfComment = PFObject()
pfPost.addObject(pfComment, forKey: "comments") // Add the comment to the post
2)在评论和帖子上做一个saveAll,这给了我两条评论,因为帖子保存的那个被视为与另一个评论分开的新对象
// Same pfComment as above,
PFObject.saveAllInBackground([pfPost, pfComment], block: ...
是什么给出的?解析this link无益!
答案 0 :(得分:2)
我想当你开始并保存PFObject时,you need to be explicit about what kind of object you're dealing with。所以对于你的评论对象,你可以说pfComment = PFObject(className:&#34; Comment&#34;)。现在当你保存它时,Parse会知道你想要保存什么。
我相信我通过创建一个带有数组的Post类来完成你的目标,如下所示:
我还创建了一个简单的注释类,其中包含消息字符串:
从这里开始,我就可以将代码放在一起,为帖子的数组添加注释。
var post = PFObject(className:"Post")
var comment = PFObject(className:"PostComment")
comment["message"] = "New Message"
var query = PFQuery(className:"Post")
query.getObjectInBackgroundWithId("fu8gCbYVeI") {
(result: PFObject!, error: NSError!) -> Void in
if error == nil {
post = result
} else { }
}
post.addObject(comment, forKey: "comments")
PFObject.saveAll([comment, post])
这应该将评论保存为帖子作为实际评论对象的指针。