Dovresti davvero usare questo metodo invece:
CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition];
Versione Swift:
let buttonPosition = sender.convert(CGPoint(), to:tableView)
let indexPath = tableView.indexPathForRow(at:buttonPosition)
Questo ti darà la indexPathbase sulla posizione del pulsante che è stato premuto. Quindi chiameresti semplicemente cellForRowAtIndexPathse hai bisogno del cellulare o indexPath.rowse hai bisogno del numero di riga.
Se sei paranoico, puoi controllare if (indexPath) ...prima di usarlo nel caso in cui indexPathnon si trovi per quel punto nella vista tabella.
È probabile che tutte le altre risposte non funzionino se Apple decide di modificare la struttura della visualizzazione.