在Interface Builder中连接数据源时,UITableView崩溃

时间:2011-03-04 16:02:12

标签: iphone xcode ios4 interface-builder ios-simulator

- (NSInteger)numberOfSectionsInTableView:(UITableView *)cijferTableView{
return 1;
}
- (NSInteger)cijferTableView:(UITableView *)cijferTableView numberOfRowsInSection:(NSInteger)section {
    return [marksArray count];
}
- (UITableViewCell *)cijferTableView:(UITableView *)theTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [theTableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = [marksArray objectAtIndex:indexPath.row];

return cell;
}

我有一个带有字符串的marksArray。 代码工作正常,直到四分之一小时,但从那时起,当我加载此代码所在的视图时,它一直在崩溃,而我没有改变任何东西。

当我在界面构建器中断开数据源时,视图会正确加载而不会崩溃。但当然,在这种情况下,它不会填补表格。

我做错了什么?


更新

控制台提供的错误在抛出'NSException'

的实例后被终止

另外,我还没有在marksArray中添加任何东西。为了测试,我就是这样:

 //.h

NSMutableArray *marksArray;

//.m

marksArray = [NSMutableArray arrayWithObjects:@"1", @"2", nil;

3 个答案:

答案 0 :(得分:3)

看起来你用cijferTableView搜索并替换了“tableView”,并且这样做你重命名了方法,这会导致它破坏。例如:

- (NSInteger)cijferTableView:(UITableView *)cijferTableView numberOfRowsInSection:(NSInteger)section {
    return [marksArray count];
}

应该是......

- (NSInteger)tableView:(UITableView *)cijferTableView numberOfRowsInSection:(NSInteger)section {
    return [marksArray count];
}

答案 1 :(得分:1)

1)你忘了保留marksArray

2)dataSource方法的奇怪名称('cijfer'东西而不是tableView:numberOfRowsInSection:和tableView:cellForRowAtIndexPath :)。他们不会工作。

答案 2 :(得分:0)

为什么要重命名委托方法?也许这些会导致你的一些问题?