свойство 'row' не найдено на объекте типа 'NSIndexPath *' в iOS tableview

Я попытался получить идентификатор строки элемента с помощью «didSelectRowAtIndexPath» в iOS. Код:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ indexPathRow=indexPath.row; self.recordIdToEdit = [[[deviceNameArray objectAtIndex:indexPath.row] objectAtIndex:0] intValue]; NSLog(@"Item selected..%d", self.recordIdToEdit); [self performSegueWithIdentifier:@"DetailsViewController" sender:nil]; } 

Во время отладки я получаю следующую ошибку для po:

  (lldb) po [deviceNameArray objectAtIndex:indexPath.row] error: property 'row' not found on object of type 'NSIndexPath *' error: 1 errors parsing expression (lldb) po indexPathRow <nil> 

Что здесь происходит? deviceNameArray – это массив строк, содержащий результат, полученный из sqlite db.

Попробуйте это во время отладки, нам нужно отправить значение int

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ int index=indexPath.row; self.recordIdToEdit = [[deviceNameArray objectAtIndex:index]]; NSLog(@"Item selected..%d", self.recordIdToEdit); [self performSegueWithIdentifier:@"DetailsViewController" sender:nil]; } 

Просто #import <UIKit/UIkit.h> в вашем .h файле, и все будет в порядке.

Для будущей ссылки я просто получил эту ошибку, и она не имела ничего общего с indexPath

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { //... Task *task = [self.tasks objectAtIndex:indexPath.row]; //... return cell; } 

Моя ошибка заключалась в том, что self.tasks был заполнен NSDictionary s вместо объектов Task.

Таким образом, по крайней мере, в моем случае ошибка вводила в заблуждение, если ничего не работает, возможно, проверьте назначение типа.

Давайте будем гением компьютера.