NSMutableArray没有正确添加元素

时间:2015-10-12 13:51:14

标签: objective-c uitableview nsmutablearray

我在向NSMutableArray添加元素并将其写入tableView时遇到问题。在这段代码之后,它应该在@" 0"中写入tableView元素。到@" 19"但它显示我从0到13,然后以错误的顺序显示。

以下是截图:

screenshot

如何以正确的顺序将它们写入数组的末尾?

- (void)refreshBottom{
    int p = 0;
    for (int i = p; i< p + 20; i++) {
        [cells addObject:@(i)];
    }
    [self.refreshControl endRefreshing];
    [_timeline_table reloadData];
}

单元格为NSMutableArray

UITableView数据源

- (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];
        cell.selectionStyle = UITableViewCellSelectionStyleDefault;
        [cell.textLabel setText:[NSString stringWithFormat:@"%@",[cells objectAtIndex:indexPath.row]]];
    }
    return cell;
}

1 个答案:

答案 0 :(得分:0)

您需要在if

之外设置单元格值
- (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];
        cell.selectionStyle = UITableViewCellSelectionStyleDefault;
    }

    [cell.textLabel setText:[NSString stringWithFormat:@"%@",[cells  objectAtIndex:indexPath.row]]];

    return cell;
}

您不希望仅在创建单元格时设置内容。单元格被重用,相同的单元格稍后将用于另一个索引,所以你必须在这种情况下设置内容。