indexPath.row返回什么?

时间:2015-01-27 19:03:33

标签: objective-c tableview rows cells

我正在阅读关于Objective c编程的Big Nerd Ranch指南,我有代码:

- (NSInteger) tableView:(UITableView *)tableView 
  numberOfRowsInSection:(NSInteger)section {

    return [self.tasks count]; 
}

- (UITableViewCell *) tableView:(UITableView *)tableView 
  cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    // Get a reusable cell
    UITableViewCell *c = [self.taskTable dequeueReusableCellWithIdentifier:@"Cell"];

    // This below is what i don't understand
    NSString *item = [self.tasks objectAtIndex:indexPath.row];
    c.textLabel.text = item;

    return c;
}

我不明白indexPath.row返回什么或者它在数组中代表什么索引,我刚刚到达本书实际上要做小应用程序的部分,所以我习惯于只传递一个整数索引。

  

NSString * item = [self.tasks objectAtIndex:indexPath.row];

我不知道是否需要所有这些代码,但我只想确保您拥有回答问题所需的所有代码。

.h文件 - http://pastebin.com/TRnPqn4d

.m文件 - http://pastebin.com/YXZffwye

2 个答案:

答案 0 :(得分:5)

与此相关的indexPath包含两位信息。

  1. section - 表格中要放置单元格的部分。
  2. row - 单元格将放入的行(在部分中)。
  3. 所以回答"它返回了什么?"。这取决于单元格要进入的部分/行。

    它所处的功能对每个可见行运行一次。所以从indexPath.row开始将是0.然后它将是1,然后是2,然后是3,依此类推。

    这样做是为了每次都可以从数组中获取正确的字符串。

答案 1 :(得分:0)

NSIndexPath UIKit Additions在NSIndexPath上添加了一个类别,其中添加了sectionrow属性以及一些其他添加内容。

row
标识表视图的一部分中的行的索引号。 (只读)
@property(nonatomic, readonly) NSInteger row

section
标识表视图或集合视图中的节的索引号。 (只读)
@property(nonatomic, readonly) NSInteger section