Предупреждение: управление достигает конца непустой функции - iPhone

Я продолжаю получать 'предупреждение: управление достигает конца непустой функции' с этим кодом:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

 if (section ==0)

 {
  return [comparativeList count];
 }

 if (section==1) 
 {
  return [generalList count];
 }

 if (section==2)
 {

  return [contactList count];

Как я могу избавиться от этого предупреждения?

Спасибо.

13
задан Brad Larson 14 March 2010 в 06:42
поделиться

2 ответа

Добавьте return 0; в конце вашего метода. По сути, это защитная строка, если ни одно из условий if не выполнено.

Если вы хотите убедиться, что одно из условий выполнено, return -1; должен вызвать исключение и аварийное завершение работы приложения, что может помочь вам отследить ошибки.

Вы также можете изменить этот метод и заменить утверждения if на дерево switch-case. С помощью дерева switch-case вы можете очень легко добавлять новые секции и изменять их порядок в UITableView. Код становится тривиально легким для чтения благодаря использованию разумных соглашений об именовании.

Это действительно просто; у Фрейзера Спейрса есть хорошее объяснение того, как это настроить.

61
ответ дан 1 December 2019 в 17:19
поделиться

Один вариант:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    if (section ==0) {
        return [comparativeList count];
    } else if (section==1) {
        return [generalList count];
    }
    // section == 2    
    return [contactList count];
}
4
ответ дан 1 December 2019 в 17:19
поделиться