В моем приложении пользователи могут публиковать в Parse backend, а их сообщения отображаются на временной шкале (PFQueryTableViewController
). Каждая ячейка в этом представлении таблицы имеет кнопку, которую пользователи могут нажать, чтобы «понравиться» сообщению. До вчерашнего дня мне нравилась функция сортировки, но сегодня она больше не работает.Любая идея, почему этот func пишет/обновляет первую ячейку в таблице, а не выбранную в PFQueryTableViewController?
Теперь, когда пользователь любит пост это целый ряд вещей: добавляет ObjectId пользователя в массив в посте PFObject
(«likedBy»), и добавляет пост PFObject
к соотношению в классе User ("likedPosts «).
Но что, кажется, теперь происходят это работает, но со следующими проблемами:
- это чаще всего понравится то, что пост/клетка находится в верхней части Tableview вместо одного пользователя действительно клики например on - eg нажмите на кнопку на 4-м столбе в таблице, и ему понравится первое сообщение вместо этого
- ему может понравиться предполагаемый пост, но после этого пользователь не сможет ничего подобного после этого
- или он может просто не понравиться никому в все
Вот код, который я использую, где я иду не так? Вчера он работал отлично, и я не думаю, что это проблема с Parse backend, потому что я установил приложение для работы с совершенно новым бэкэндом час назад, и проблема сохраняется.
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)
Я признателен за любую помощь, поскольку это сводит меня с ума !! Я просто не вижу, где проблема!
Спасибо за это! Знаете ли вы, как я буду уверен, что ему нравится только пост/строка, которую я нажимаю, а не первую строку? –
Используйте «тег» кнопки '' так, чтобы 'let index = sender.tag', а затем' let object = objectAtIndexPath (index) ' – njuri
А теперь это имеет больше смысла ... Но теперь у меня есть ошибка в объектеAtIndexPath (index) line say 'не может преобразовать значение типа' Int 'в ожидаемый тип аргумента' NSIndexPath? ' –