UITableViewCell ID

Acabo de comenzar a progtwigr en Swift para iOS y quiero hacer una aplicación con una vista de tabla y una barra de búsqueda. Cuando hagas clic en una celda, se reproducirá un sonido. Pero cuando busco, no puedo simplemente usar indexPath.row porque se indexPath.row otra canción.

¿Es posible dar a cada UITableViewCell un identificador para que pueda llamar a un sonido mediante el identificador de la celda tocada?

Cuando busque, idealmente debería tener otra matriz para almacenar los resultados de búsqueda.

Digamos que tiene 10 celdas.

Tendrás una matriz de 10 sonidos que reproducirás en base a indexPath.row

Y también tendrá otra searchResultsArray que está utilizando para mostrar los resultados de búsqueda.

Por lo tanto, cuando se llama didSelectRow, use la nueva matriz y reproduzca sonido de esa matriz.

Una mejor manera de lograr esto es cambiar el dataSource de su tableView y llamar a su reloadData al mostrar los resultados de búsqueda.

Entonces, siempre podrías saber qué canción en tableView: didSelectRowAtIndexPath: según indexPath.row (porque dataSource de tableView está actualizada).

Además, es mejor que no uses cell.tag debido a la estrategia de reutilización de la celda.

Creo que necesitas entender cómo funcionan indexPath.row en UITableView y UISearchBar antes de hacer algo así. Normalmente, indexPath.row se usa como un identificador. Y mientras vaya más allá, lo encontrará extremadamente útil.

Y creo que tienes malentendidos porque cuando haces clic en eso, deberías poder reproducir el sonido. Es por eso que necesitamos la fuente de datos cuando configuramos UITableView . Eso es lo que llamamos estructuras de datos paralelos. Significa que el índice de UITableViewCell coincide con el índice de su origen de datos.

Después de search, tendrá otra fuente de datos. Entonces, ten cuidado con eso. Porque ya no estás manipulando la fuente de datos original.