2011-01-01 8 views
47

Necesito convertir un nsindexpath var en NsInteger o simplemente un int. por ejemplo:Cómo convertir NSIndexpath en NSInteger o simplemente int?

int rowIndex = [mGoogleBaseTable selectedRow]; 
//mGoogleBaseTable is a NSTable type in Macdevelopement.. 

& &

int rowIndex = [mGoogleBaseTable indexPathForSelectedRow]; 
//mGoogleBaseTable is a UITableView type in Iphone (iOS)Development. 

selectedRow vuelve NSInteger sencilla pero indexPathForSelectedRow devuelve un NSIndexPath ..

Por favor ayuda ¿Cómo puedo lograr esto.

Respuesta

124

Si

NSIndexPath *p = ... // some indexpath 

continuación

NSInteger row = p.row; 
NSInteger section = p.section; 

Eso es todo!

+0

gracias .. Sus trabajos. – Tarun

+0

gracias .. el trabajo completo es p.row pero no entiendo p.sección. – AnilPatel

+0

@AnilMetatagg la sección solo es relevante si tiene más de una sección. – mvds

6

Yo prefiero hacerlo de esta manera

NSNumber *selRow = [[NSNumber alloc] initWithInteger:indexPath.row]; 
+2

En ese caso, mejor use 'NSNumber * selrow = @ (indexPath.row);' para la legibilidad – mvds

13

Tal vez, esto se puede ayudar a

NSInteger variable = indexPath.row; 
+0

simple y efectiva. guay. Gracias +1. – Isuru

+0

también se puede usar como suTextField.tag = indexPath.row para rastrear y crear condiciones dentro de sus celdas personalizadas, por ejemplo, si desea actualizar los datos dentro de una matriz mutable. – whyoz

-1

en Swift:

  1. Asociado su vista de colección a su var:

    @IBOutlet weak var collectionView: ¡UICollectionView!

  2. En prepareForSegue func, puede llamar a:

    var = indexPath collectionView.indexPathsForSelectedItems()

7

En Swift:

let section: Int = indexPath.section 
    let row: Int = indexPath.row 
1

convertir simplemente en int por,

NSIndexPath * path = ... // algunos indexpath

int row = (int) path.row;