正常に動作している 1 つのテーブル ビューのみをロードしている場合、ビューに 2 つのテーブル ビューが必要です。しかし、以下の方法を使用して両方のテーブルビューを読み込もうとすると、以下の例外が発生します。
キャッチされない例外 'NSRangeException'、理由: ' * -[NSArray objectAtIndex:]: 境界を超えたインデックス 2 [0 .. 1]'
- (void)viewDidLoad {
[super viewDidLoad];
array1 = [[NSArray alloc]initWithObjects:@"Start",@"End",@"Frequency",@"Time of Day",nil];
array2 =[[NSArray alloc]initWithObjects:@"Alarm",@"Tone",nil];
table1.scrollEnabled =NO;
table2.scrollEnabled =NO;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
if (tableView == table1) ;
return 1;
if (tableView == table2);
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (tableView == self.table1) ;
return [array1 count];
if (tableView == self.table2) ;
return [array2 count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell...
if (tableView == self.table1){
cell.textLabel.text = [array1 objectAtIndex:indexPath.row];
}
if (tableView == self.table2){
cell.textLabel.text = [array2 objectAtIndex:indexPath.row];
}
return cell;}