2011-01-01 10 views
47

Ich muss eine nsindexpath var in NsInteger oder einfach ein int konvertieren. z:Wie konvertiert man NSIndexpath in NSInteger oder einfach 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 kehrt NSInteger einfach aber indexPathForSelectedRow gibt einen NSIndexPath ..

Bitte helfen Sie mir, wie ich dies erreichen können.

Antwort

124

Wenn

NSIndexPath *p = ... // some indexpath 

dann

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

Das ist alles!

+0

danke .. Seine funktioniert. – Tarun

+0

danke .. vollständige Arbeit ist p.row aber ich verstehe p.section. – AnilPatel

+0

@AnilMetatagg Der Abschnitt ist nur relevant, wenn Sie mehr als einen Abschnitt haben. – mvds

6

Ich ziehe es auf diese Weise vielleicht

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

In diesem Fall besser verwenden 'NSNumber * selrow = @ (indexPath.row);' für die Lesbarkeit – mvds

13

tun, wird diese können Sie

NSInteger variable = indexPath.row; 
+0

einfach und effektiv. cool. Danke +1. – Isuru

+0

kann auch wie yourTextField.tag = indexPath.row verwendet werden, um Bedingungen innerhalb Ihrer benutzerdefinierten Zellen zu verfolgen und zu erstellen, z. B. wenn Sie Daten in einem veränderbaren Array aktualisieren möchten. – whyoz

-1

In swift helfen:

  1. Mitarbeiterin Ihrer Sammlung im Hinblick auf Ihre var:

    @IBOutlet schwache var collectionView: UICollectionView!

  2. In prepareForSegue func, können Sie anrufen:

    var indexPath = collectionView.indexPathsForSelectedItems()

7

In Swift:

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

einfach in int konvertieren, indem,

NSIndexPath * path = ... // ein Indexpfad

int row = (int) path.row;

Verwandte Themen