Удаление NSLog разрывов компилятора - PullRequest
2 голосов
/ 10 июня 2010

Хорошо, это странно

У меня есть этот код

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.row) {
  case 1:
    NSLog(@"Platform Cell Selected");
    AddGamePlatformSelectionViewController *platformVC =
      [[AddGamePlatformSelectionViewController alloc]
      initWithNibName:@"AddGamePlatformSelectionViewController" bundle:nil];
    platformVC.context = context;
    platformVC.game = newGame;
    [self.navigationController pushViewController:platformVC animated:YES];
    [platformVC release];
    break;
  default:
    break;
  }
}

, который работает нормально.

Когда я удаляю оператор NSLog, вот так:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.row) {
  case 1:
    //NSLog(@"Platform Cell Selected");
    AddGamePlatformSelectionViewController *platformVC =
      [[AddGamePlatformSelectionViewController alloc]
      initWithNibName:@"AddGamePlatformSelectionViewController" bundle:nil];
    platformVC.context = context;
    platformVC.game = newGame;
    [self.navigationController pushViewController:platformVC animated:YES];
    [platformVC release];
    break;
  default:
    break;
  }
}

Я получаю следующие ошибки компилятора

/ Пользователи / DVG / Разработка / iPhone / Журнал / Классы / AddGameTableViewController.m: 102: 0 / Пользователи / DVG / Разработка / iPhone / Журнал /Classes / AddGameTableViewController.m: 102: ошибка: ожидаемое выражение перед «AddGamePlatformSelectionViewController»

/ Users / DVG / Development / iPhone / Backlog / Classes / AddGameTableViewController.m: 103: 0 / Users / DVG / Development / iPhone/Backlog/Classes/AddGameTableViewController.m:103: error: 'platformVC' undeclared (первое использование в этой функции)

Если я просто отредактирую две // для комментирования этой строки, все будет работать плавно.

Ответы [ 2 ]

5 голосов
/ 10 июня 2010

Вы не можете объявить объект (например, AddGamePlatformSelectionViewController *platformVC) как первую строку в case ...

Вы можете решить эту проблему, добавив некоторый код раньше (например, NSLog) или заключив код в case между {...} следующим образом:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  switch (indexPath.row) {
    case 1:
    {
      AddGamePlatformSelectionViewController *platformVC = [[AddGamePlatformSelectionViewController alloc]
      initWithNibName:@"AddGamePlatformSelectionViewController" bundle:nil];
      // the rest of the code...
      break;
    }
  }
}
0 голосов
/ 10 июня 2010

Вы получаете ту же ошибку, если вы удаляете оператор NSLog вместо того, чтобы его комментировать?Может быть, компилятору просто не нравится, что вы запускаете блок case с комментарием.(Смешно, я знаю, но стоит попробовать?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...