-1

我运行这个函数:

- (void)insertRows {
    [_objects insertObject:[NSDate date] atIndex:0];
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
    [self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}

它必须运行这个函数

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];

    NSDate *object = _objects[indexPath.row];
    cell.textLabel.text = [object description];
    return cell;
}

但是这个功能没有运行...请帮助如何运行tableView...功能

- (IBAction)insertObject {
    [[MasterViewController alloc] insertRows];
}

- 此代码运行 insertRows,我通过断点检查

- (IBAction)insertObject:(id)sender {
    [_objects insertObject:[NSDate date] atIndex:0];
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0   inSection:0];
    [self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
    NSLog(@"log:insert-indexPath: %i",indexPath.row);
    NSDate *object = _objects[indexPath.row];
    NSLog(@"log:insert-object %@",object.description);
 }

- 使用它,为什么?

4

1 回答 1

2

这段代码有很多问题:

• 可能想要addObject:_objects不是insertObject:atIndex:

[[MasterViewController alloc] insertRows];没有意义。必须有一个init地方。

• 您永远不应该将该description方法用作向用户显示某些内容的方法。 description仅用于调试和记录。

• 要触发 的调用tableView:cellForRowAtIndexPath:,您通常reload需要使用表。即,该方法由表视图在更新自身时调用。

我建议从table view programming guide开始。

于 2013-01-10T19:04:26.913 回答