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

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

- (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];

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

Спасибо.

Ответ 1

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

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

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

Это очень легко; Fraser Speirs имеет хорошее объяснение того, как установить это.

Ответ 2

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

- (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];
}