Indexpath.row值未更新

时间:2009-08-18 17:36:47

标签: iphone

在iphone应用程序中。

我正在尝试获取indexPath.row值(在didselectedrowatindexpath方法中),以在以编程方式创建的tableview中选择的行为基础执行某些操作。

我需要从didselectedrowatindexpath方法中访问indexpath.row,其中if / else将根据indexpath.row定义操作。

应用程序中有7张卡片图像和一个[菜单列表]表格视图。每当用户点击表格视图行时,则需要触摸图像

我正在尝试使用此代码来获取IndexPath.row值。问题是indexPath.row值不是每次都更新。这只是旧的价值。请提出如何解决这个问题。

- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event 
 {

    NSUInteger nSection =[myTableView numberOfSections]-1 ;
    NSUInteger nRow = [myTableView numberOfRowsInSection:nSection];    
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:nRow inSection:nSection]; 

    NSLog(@"No of sections in my table view %d",nSection);    
    NSLog(@"No of rows in my table view %d",nRow);
    NSLog(@"Value of selected indexPath Row %d", [indexPath.row]);
    NSLog(@"VAlue of Array arrOperationChk %d",[arrOperationChk count]);

 }

3 个答案:

答案 0 :(得分:1)

此代码似乎会响应某些内容(表格?)被触摸。然后,您可以询问该表在其最后一节中有多少行,并为其创建索引路径。

该表缓存每个部分中的行数。如果您更改了行数,则需要通过调用-insert/deleteRowsAtIndexPaths:withRowAnimation:或致电-reloadData来告知该表。否则,表无法知道它需要重新查询其数据源(您提供的数据源)。

答案 1 :(得分:1)

除非我错误地读取此代码,否则您只是获取最后一个单元格的最后一个单元格的索引路径?我不希望改变。

如果要获取所选单元格,请使用

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
您的UITableViewController对象中的

方法。

答案 2 :(得分:1)

正如其他人所说,代码中没有任何东西会改变你刚刚创建的indexPath变量。

此外,语法[indexPath.row]看起来不对 - 除非您正在调用方法,否则不需要方括号。当你在Objective-C中的指针上使用这样的点语法时,你不会将它视为方法调用(即使有一个隐式),而是作为结构的伪实例变量。

你的目标是什么?如果我们理解你想要实现的目标/期望的行为,那么可能会出现更有用的答案。