在 iOS 表视图中的类型为 'NSIndexPath *' 的对象上找不到属性'row'



我试图在iOS中的"didSelectRowAtIndexPath"的帮助下获取项目的行ID。法典:

   - (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];  
      }  

只需在您的.h文件中@import UIKit;,您就会没事的。

为了将来参考,我刚刚收到此错误,它与indexPath无关

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

我的错误是self.tasks填充了NSDictionary而不是任务对象。

因此,至少在我的情况下,错误具有误导性,如果没有其他工作,请检查类型分配。

相关内容

  • 没有找到相关文章