Zamiast tego naprawdę powinieneś używać tej metody:
CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition];
Wersja Swift:
let buttonPosition = sender.convert(CGPoint(), to:tableView)
let indexPath = tableView.indexPathForRow(at:buttonPosition)
To da ci podstawę w indexPathoparciu o położenie przycisku, który został naciśnięty. Wtedy po prostu zadzwonisz, cellForRowAtIndexPathjeśli potrzebujesz komórki lub indexPath.rowjeśli potrzebujesz numeru wiersza.
Jeśli masz paranoję, możesz sprawdzić if (indexPath) ...przed użyciem, na wypadek gdyby indexPathnie znaleziono tego punktu w widoku tabeli.
Wszystkie inne odpowiedzi prawdopodobnie się zepsują, jeśli Apple zdecyduje się zmienić strukturę widoku.