需要NSIndexPath的帮助

时间:2011-10-02 18:07:38

标签: objective-c ios uitableview

在下面的方法中为什么 indexPath.Row 总是返回0 ???

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        }

    // Configure the cell.
    [cell.textLabel setText:[mainItems objectAtIndex:indexPath.row]];
    return cell;
}

mainItems是一个NSMutableArray,有5个项目(“第1项”,“第2项”,......),视图确实获得5个项目......但它们都是“第1项”,而不是第1项,第2项...

我做错了什么?

1 个答案:

答案 0 :(得分:3)

我的猜测是你在-numberOfSectionsInTableView的实现中返回了错误的值,并且表视图要求你输入5个部分的第0行。

表视图包含节,每个节都有行。许多表视图只有一个部分,但该部分中有许多行。听起来你有一个部分,有5行。请确保在以下各项中返回正确的值:

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