我可能会错误地使用它,但我认为我说得对。我将数据加载到我的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,但是从我在其他地方阅读的内容来看,这应该是有用的。
有什么想法吗?
答案 0 :(得分:3)
您的崩溃是由于您正在进行
NSLog(@"%@",[[appDelegate teamRoster] count]);
你应该做什么
NSLog(@"%d",[[appDelegate teamRoster] count]);
使用%@
向对象发送消息description
,该消息不适用于int
s(或float
或BOOL
s。)
答案 1 :(得分:2)
NSLog崩溃是因为您使用了错误的格式化程序类型(@“%@”),它应该是:
NSLog(@"%d",[[appDelegate teamRoster] count]);
除此之外,从哪里调用reloadData?确保它发生在主线程上。