知道为什么这个函数是 writing/updating table 中的第一个单元格而不是 CFQuery TableViewController 中的选定单元格吗?
Any idea why this func is writing/updating the first cell in table and not the selected one in PFQueryTableViewController?
在我的应用程序中,用户可以 post 到 Parse 后端,他们的 post 会显示在时间轴中 (PFQueryTableViewController
)。此 table 视图中的每个单元格都有一个按钮,用户可以按下该按钮以 'like' post。直到昨天我还有喜欢排序的功能,但今天突然不能用了。
现在,当用户喜欢 post 时,它会做很多事情:将用户的 objectId 添加到 post PFObject
("likedBy") 中的数组,并将 post PFObject
添加到用户 class ("likedPosts").
中的关系
但现在似乎正在发生的事情是它有效但存在以下问题:
- 它通常会喜欢 post/cell 位于 table 视图顶部的任何内容,而不是用户实际点击喜欢的内容 -- 例如在 table 中点按第 4 个 post 按钮,它会喜欢第一个 post 而不是
- 它可能喜欢预期的 post 但之后用户无法喜欢其他任何东西
- 或者它可能根本不喜欢任何东西
这是我正在使用的代码,我哪里出错了?昨天运行良好,我认为这不是 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)
我将不胜感激任何帮助,因为这让我发疯了!!就是看不出问题出在哪里!
您正在将 CGPointZero
转换为 table 视图。它实际上是 CGPoint(0,0)
并且总是 returns 0,0
这是 table 视图的第一行。
在我的应用程序中,用户可以 post 到 Parse 后端,他们的 post 会显示在时间轴中 (PFQueryTableViewController
)。此 table 视图中的每个单元格都有一个按钮,用户可以按下该按钮以 'like' post。直到昨天我还有喜欢排序的功能,但今天突然不能用了。
现在,当用户喜欢 post 时,它会做很多事情:将用户的 objectId 添加到 post PFObject
("likedBy") 中的数组,并将 post PFObject
添加到用户 class ("likedPosts").
但现在似乎正在发生的事情是它有效但存在以下问题:
- 它通常会喜欢 post/cell 位于 table 视图顶部的任何内容,而不是用户实际点击喜欢的内容 -- 例如在 table 中点按第 4 个 post 按钮,它会喜欢第一个 post 而不是
- 它可能喜欢预期的 post 但之后用户无法喜欢其他任何东西
- 或者它可能根本不喜欢任何东西
这是我正在使用的代码,我哪里出错了?昨天运行良好,我认为这不是 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)
我将不胜感激任何帮助,因为这让我发疯了!!就是看不出问题出在哪里!
您正在将 CGPointZero
转换为 table 视图。它实际上是 CGPoint(0,0)
并且总是 returns 0,0
这是 table 视图的第一行。