У меня есть таблица, содержимое которой заполнено с использованием одного из двух наборов данных, предоставленных на основе значения сегментированного элемента управления. Данные извлекаются из Интернета.
Приложение аварийно завершает работу, когда я перемещаюсь назад и вперед между двумя наборами данных, а затем выбираю ячейку таблицы. Приложение работает без сбоев, когда я использую две отдельные таблицы, а не одну таблицу с сегментированным элементом управления. Каким-то образом их объединение делает приложение нестабильным.
Одна из самых больших ошибок - когда я нажимаю одну из таблиц Acells of A, и во время ее загрузки я нажимаю индекс сегмента = 1, который загружает B. Это вызывает отправку нераспознанного селектора. значение параметра o Таблица для отправки в таблицу B.
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier0;
if (choice == 0) {
CellIdentifier0 = @"ACell";
} else if (choice == 1) {
CellIdentifier0 = @"BCell";
}
UITableViewCell *cell;
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier0];
if (cell == nil) {
if (choice == 0) {
[[NSBundle mainBundle] loadNibNamed:@"ACell" owner:self options:nil];
cell = ACell;
self.ACell = nil;
} else if (choice == 1) {
[[NSBundle mainBundle] loadNibNamed:@"BCell" owner:self options:nil];
cell = BCell;
self.BCell = nil;
}
}
if (choice == 0) {
[(ACell *)cell setA:(A*)[contentArray objectAtIndex:indexPath.row]];
} else if (choice == 1) {
[(BCell *)cell setB:(B*)[contentArray objectAtIndex:indexPath.row]];
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if ( choice == 0) {
A = [contentArray objectAtIndex:indexPath.row];
[[NSNotificationCenter defaultCenter] postNotificationName:@"showA" object:A];
} else if (choice ==1) {
B = [contentArray objectAtIndex:indexPath.row];
[[NSNotificationCenter defaultCenter] postNotificationName:@"showB" object:B];
}
}