0

在我的应用程序中,用户可以发布到 Parse 后端,他们的帖子会显示在时间轴 ( PFQueryTableViewController) 中。此表格视图中的每个单元格都有一个按钮,用户可以按下该按钮来“喜欢”帖子。直到昨天我才有喜欢排序的功能,但今天突然它不再工作了。

现在,当用户喜欢帖子时,它会做很多事情:将用户的 objectId 添加到帖子中的数组PFObject(“likedBy”),并将帖子添加PFObject到 User 类中的关系中(“likedPosts”)。

但现在似乎正在发生的事情是它有效,但存在以下问题:

  • 它通常会喜欢表格视图顶部的任何帖子/单元格,而不是用户实际点击的那个——例如,点击表格中第 4 个帖子上的点赞按钮,它会喜欢第 1 个帖子
  • 它可能喜欢预期的帖子,但之后用户无法喜欢其他任何内容
  • 或者它可能根本不喜欢任何东西

这是我正在使用的代码,我哪里出错了?昨天运行良好,我认为这不是 Parse 后端问题,因为我在一小时前将应用程序设置为使用全新的后端,但问题仍然存在。

func likePost(sender: UIButton) {

        let hitPoint = sender.convertPoint(CGPointZero, toView:  self.tableView)
        let hitIndex = tableView.indexPathForRowAtPoint(hitPoint)
        let object = objectAtIndexPath(hitIndex)

        let userId = PFUser.currentUser()?.objectId

        let relayedResponses = (PFUser.currentUser()?.relationForKey("likedPosts"))! as PFRelation
        likedPosts.addObject(object!)
        PFUser.currentUser()?.saveInBackground()

        object?.addUniqueObject(userId!, forKey: "likedBy")
        object?.saveInBackground()

        self.tableView.reloadData()

}

在我的cellForRowAtIndexPath我有:

cell.likeButton.tag = indexPath.row
    cell.likeButton.addTarget(self, action: "likePost:", forControlEvents: UIControlEvents.TouchUpInside)

我会很感激任何帮助,因为这让我发疯!我就是看不出问题出在哪里!

4

1 回答 1

0

您转换CGPointZero 为 tableView。它实际上CGPoint(0,0)总是返回0,0表格视图的第一行。

于 2015-12-10T16:43:25.980 回答