indexPath Valor de UICollectionView

Cuando uso una UICollectionView, estoy perplejo al get el valor de didSelectItemAtIndexPath método didSelectItemAtIndexPath .

Estoy usando la siguiente línea de código en el método didSelectItemAtIndexPath :

 //FileList is an NSArray of files from the Documents Folder within my app. //This line gets the indexPath of the selected item and finds the same index in the Array NSString *selectedItem = [NSString stringWithFormat:@"%@",[FileList objectAtIndex:indexPath.item]]; //Now the selected file name is displayed using NSLog NSLog(@"Selected File: %@", selectedItem); 

El problema es que indexPath siempre devuelve 0 (consulte el código siguiente) y, como resultado, siempre se selecciona el primer elemento en FileList NSArray.

He probado diferentes parameters, como

  • indexPath.row
  • indexPath.item
  • y solo indexPath

TODOS estos devuelven un valor de 0 en la siguiente instrucción NSLog:

 NSLog(@"index path: %d", indexPath.item); //I also tried indexPath.row here 

Quizás estoy formateando incorrectamente el NSString, pero no creo que sea así, ya que no hay advertencias y he intentado formatearlo de forma diferente en otros lugares.

¿Por qué indexPath siempre devuelve 0?

¡Cualquier ayuda sería apreciada! ¡Gracias!

A riesgo de decir lo obvio, asegúrese de que su código esté en el método didSelectItemAtIndexPath lugar de hacerlo en didDeselectItemAtIndexPath . indexPath valores de indexPath muy diferentes para un evento de toque dado en el último método y es bastante fácil insert el incorrecto con la finalización del código de Xcode.

El método de delegado que está utilizando siempre proporciona la ruta de índice de la celda que se seleccionó. Intente depurar con un punto de interrupción en su llamada NSLog. Cuando el depurador se detiene, mira el Área de debugging en la parte inferior y usa la console (Ver => Área de debugging => Activar console si la necesitas).

Escriba la console: po indexPath

Debería ver algo como esto si el elemento seleccionado es el quinto de la list en la sección: 0 (primera sección y probablemente la única)

<NSIndexPath 0xa8a6050> 2 indexes [0, 5]

Espero que esto ayude a descubrir qué está pasando.