我一直在搜索這個錯誤,並找到一些類似的行爲,但沒有解決方案,解決了這個問題。混合靜態和動態UITableViewController內容導致NSRangeException
我有一個UITableViewController(聲明爲靜態在SB),其具有以部分:第一部分0(配方)是靜態的4個細胞,第1(香料)應該是動態
這是
- (void)viewDidLoad {
[super viewDidLoad];
rows = [[NSMutableArray alloc] initWithArray:@[@"test",@"test",@"test",@"test",@"test",@"test",@"test"]];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// Return the number of sections.
return 2;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
switch (section) {
case 0:
return 4;
break;
case 1:
return rows.count;
break;
default:
break;
}
return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell;
switch (indexPath.section) {
case 0:
return [super tableView:tableView cellForRowAtIndexPath:indexPath];
break;
case 1:
cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if (!cell)
{
// create a cell
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
}
cell.textLabel.text = [rows objectAtIndex:indexPath.row];
return cell;
default:
break;
}
return cell;
}
現在運行的時候,我得到的錯誤是: 'NSRangeException',原因是:我使用的測試代碼「*** - [__ NSArrayI objectAtIndex:]:指數1超出範圍[0 .. 0]'
我知道我錯過了某個地方的小東西,有人可以幫助我嗎?
非常感謝
看看這個http://stackoverflow.com/a/9428324/285190 – Flexicoder 2014-12-03 14:05:25
我怎麼沒看到你的鏈接應該在幫助這種情況下,因爲這裏描述的問題不等於我的,除了我使用UITableViewController而不是UIViewController – CRE8IT 2014-12-03 14:16:30
它崩潰之後numberOfRowsInSection甚至沒有進入CellForRowAtIndexPath – CRE8IT 2014-12-03 14:41:22