Iphone 重新加载数据似乎不起作用

Iphone 重新加载数据似乎不起作用,iphone,objective-c,xcode,Iphone,Objective C,Xcode,我可能用错了,但我想我是对的。我像这样将数据加载到UITableViewController中 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { CoCoachAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; static N

我可能用错了,但我想我是对的。我像这样将数据加载到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保持不变

我在想也许我只是不知道如何使用重新加载的数据,但从我在其他地方读到的情况来看,这应该是可行的


有什么想法吗?

你的崩溃是由于你正在做的事情

NSLog(@"%@",[[appDelegate teamRoster] count]);
你应该在什么时候做

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

使用
%@
向objec发送消息
description
,该消息对
int
s(或
float
s或
BOOL
s)不起作用。

您的崩溃是由于您正在执行的操作

NSLog(@"%@",[[appDelegate teamRoster] count]);
你应该在什么时候做

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

使用
%@
向对象发送消息
description
,该消息对
int
s(或
float
s或
BOOL
s)不起作用。

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

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

除此之外,从何处调用重载数据?确保它发生在主线程上。

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

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

除此之外,从何处调用重载数据?确保它发生在主线程上。

self.tableView是否指向tableView?最常见的错误是这里的tableView为零。另外,检查numberOfRowsInTableView:返回的行数是否正确。@james Dunay:您的数组是NSArray还是NSMutableArray?self.tableView给了我以下信息:2011-06-20 11:07:16.578 CoCoach[27028:207],所以我认为这一切都很好,但是当我尝试计算数组程序退出时。secondOk@PengOne中的post代码向我展示了记录数组中项目数的正确方法,它在我输入名称前返回4次,在输入名称后返回5次。尽管现在我再次查看NSLog,但我输入的最后一个项目周围没有“”,而我初始化数组时使用的4个项目确实有,这会是一个问题吗?2011-06-20 11:19:12.768 CoCoach[27142:207](“赛艇1号”、“赛艇2号”、“赛艇3号”、“赛艇4号”詹姆斯)赛尔夫桌面视图是否指向桌面视图?最常见的错误是这里的tableView为零。另外,检查numberOfRowsInTableView:返回的行数是否正确。@james Dunay:您的数组是NSArray还是NSMutableArray?self.tableView给了我以下信息:2011-06-20 11:07:16.578 CoCoach[27028:207],所以我认为这一切都很好,但是当我尝试计算数组程序退出时。secondOk@PengOne中的post代码向我展示了记录数组中项目数的正确方法,它在我输入名称前返回4次,在输入名称后返回5次。尽管现在我再次查看NSLog,但我输入的最后一个项目周围没有“”,而我初始化数组时使用的4个项目确实有,这会是一个问题吗?2011-06-20 11:19:12.768 CoCoach[27142:207](“赛艇一号”、“赛艇二号”、“赛艇三号”、“赛艇四号”詹姆斯)主线在哪里?我正在UITableViewController类中运行它。这就是你的意思吗?在UITableViewController类中,你在哪里调用reloadData?它是ViewWillDisplay吗?我从自定义函数调用它,-(void)reloadTableView{[self.tableView reloadData];}我需要从其他地方调用它吗?我会将它放在-(void)ViewWillDisplay中,这样它总是在屏幕显示之前刷新。这至少可以确保您不会将其调用为无序。主线程在哪里?我正在UITableViewController类中运行它。这就是你的意思吗?在UITableViewController类中,你在哪里调用reloadData?它是ViewWillDisplay吗?我从自定义函数调用它,-(void)reloadTableView{[self.tableView reloadData];}我需要从其他地方调用它吗?我会将它放在-(void)ViewWillDisplay中,这样它总是在屏幕显示之前刷新。这至少可以确保你不会把它称为不合规程。