无法在objective-c中运行函数

时间:2013-01-10 18:44:23

标签: ios objective-c

我运行此功能:

- (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 ... function

- (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);
 }

- 与它合作,为什么?

1 个答案:

答案 0 :(得分:2)

此代码中存在许多问题:

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

[[MasterViewController alloc] insertRows];没有意义。

•绝不应使用init方法作为向用户显示内容的方法。 description仅用于调试和记录。

•要触发description的调用,您通常会tableView:cellForRowAtIndexPath:该表。即表格视图在更新时调用该方法。

我建议从table view programming guide开始。