Я получаю EXEC_BAD_ACCESS при выполнении следующих шагов:
ШАГ 1: Нажмите кнопку «Счета» в главном меню:
Это удаляет меню (UIView) и загружает результаты (UIView), который впоследствии инициирует процесс заполнения UITableView значениями. Здесь нет проблем.
self.viewController4 = [[ScoresViewController alloc] initWithNibName:@"ScoresViewController" bundle:nil];
[window addSubview:viewController4.view];
[viewController.view removeFromSuperview];
NSLog(@"LOADING SCORES SCREEN");
ШАГ 2. Нажмите кнопку «Меню» на экране «Счета»:
Это удаляет результаты (UIView) и загружает меню (UIView) снова. Здесь нет проблем.
self.viewController = [[MainMenuViewController alloc] initWithNibName:@"MainMenuViewController" bundle:nil];
[window addSubview:viewController.view];
[viewController4.view removeFromSuperview];
NSLog(@"Loading MAIN MENU");
ШАГ 3: Снова нажмите кнопку «Счета» в главном меню:
Опять же, это удаляет меню (UIView) и загружает результаты (UIView), который впоследствии инициирует процесс заполнения UITableView значениями. Проблемный!
Приложение вылетает перед отображением экрана Score (UIView). Используя отладчик, я отследил проблему до единственной строки кода: cell.text = [self-> theScoresArray objectAtIndex: indexPath.row]; , появившейся в следующей подпрограмме:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [theTable dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
cell.text = [self->theScoresArray objectAtIndex:indexPath.row];
return cell;
}
Может ли это быть проблемой из-за того, что объект indexPath не был правильно выпущен в первый раз? Любое понимание будет полезно. Спасибо за ваше драгоценное время.