reloaddata似乎没有工作

时间:2011-06-20 15:49:21

标签: iphone objective-c xcode

我可能会错误地使用它,但我认为我说得对。我将数据加载到我的UITableViewController中。

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

    CoCoachAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    static NSString *CellIdentifier = @"Cell";

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

    // Configure the cell...

    switch (indexPath.section) {
        case 0:
                [cell.textLabel setText:@"Click to add new rower"];
                cell.textLabel.textAlignment = UITextAlignmentCenter;
            break;
        case 1:
                [cell.textLabel setText:[[appDelegate teamRoster]objectAtIndex:indexPath.row]];
            break;
    }
    return cell;
}

一切正常,然后我将用户推送到另一个viewController并允许他们在文本字段中输入他们的名字。我拿出他们的名字并将它添加到填充我的UITableViewController的相同数组中,并从我调用的UITableViewController中添加:

[self.tableView reloadData];

但没有任何反应。如果我检查我的数组,我可以看到它有正确数量的对象,并且它们的名称是最后一个条目,但是tableview保持不变......

我在想也许我只是不知道如何使用reloadData,但是从我在其他地方阅读的内容来看,这应该是有用的。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您的崩溃是由于您正在进行

NSLog(@"%@",[[appDelegate teamRoster] count]);

你应该做什么

NSLog(@"%d",[[appDelegate teamRoster] count]);

使用%@向对象发送消息description,该消息不适用于int s(或floatBOOL s。)

答案 1 :(得分:2)

NSLog崩溃是因为您使用了错误的格式化程序类型(@“%@”),它应该是:

NSLog(@"%d",[[appDelegate teamRoster] count]);

除此之外,从哪里调用reloadData?确保它发生在主线程上。