Конвертировать NSInteger в NSIndexpath - PullRequest
38 голосов
/ 23 июня 2011

В основном я храню индекс массива в NSInteger. Теперь мне нужно это как NSIndexpath, я изо всех сил пытаюсь увидеть и найти способ конвертировать мой NSInteger в NSIndexpath, чтобы я мог использовать его повторно.

Ответы [ 4 ]

88 голосов
/ 23 июня 2011

Для целых index:

NSIndexPath *path = [NSIndexPath indexPathWithIndex:index];

Создает индекс элемента в узле 0 для указания в соответствии с ссылкой .

Чтобы использовать indexPath в UITableView, более подходящий метод -

NSIndexPath *path = [NSIndexPath indexPathForRow:row inSection:section];
7 голосов
/ 23 июня 2011

Если вам нужно NSIndexPath для UITableView, вы можете использовать indexPathForRow:inSection: ( ссылка ).Индексные пути, передаваемые в табличное представление, должны содержать ровно два индекса, определяющих раздел и строку.Путь индекса, созданный с помощью indexPathWithIndex:, содержит только один индекс и не будет работать с табличным представлением.

3 голосов
/ 23 июня 2011

Используйте приведенные ниже методы NSIndexPath class.

+ (id)indexPathWithIndex:(NSUInteger)index;
+ (id)indexPathWithIndexes:(NSUInteger *)indexes length:(NSUInteger)length;
- (id)initWithIndex:(NSUInteger)index

Используйте, как показано ниже, а также Не забудьте release myIndexPath объект после использования.

NSIndexPath *myIndexPath = [[NSIndexPath alloc] initWithIndex:[myIntObj intValue]];
2 голосов
/ 24 октября 2016

Swift 3:

let indexPath = IndexPath(row: 0, section: 0)
...