Как конвертировать NSIndexpath в NSInteger или просто int? - PullRequest
49 голосов
/ 01 января 2011

Мне нужно преобразовать переменную nsindexpath в NsInteger или просто в 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 просто возвращает NSInteger, но indexPathForSelectedRow возвращает NSIndexPath ..

Пожалуйста, помогите мне, как мне этого добиться.

Ответы [ 6 ]

128 голосов
/ 01 января 2011

Если

NSIndexPath *p = ... // some indexpath

тогда

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

Вот и все!

14 голосов
/ 21 апреля 2012

Может быть, это может помочь вам

NSInteger variable = indexPath.row;
8 голосов
/ 20 июня 2015

In Swift :

    let section: Int = indexPath.section
    let row: Int = indexPath.row
7 голосов
/ 01 января 2012

Я предпочитаю делать это так

NSNumber *selRow = [[NSNumber alloc] initWithInteger:indexPath.row];
1 голос
/ 19 мая 2016

Просто преобразовать в int,

NSIndexPath * path = ... // некоторый indexpath

int row = (int) path.row;

0 голосов
/ 07 октября 2014

В быстром:

  1. Свяжите представление вашей коллекции с вашей переменной:

    @ IBOutlet слабый var collectionView: UICollectionView!

  2. В prepareForSegue func вы можете вызвать:

    var indexPath = collectionView.indexPathsForSelectedItems ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...