Предупреждение: управление достигает конца не пустой функции - iPhone - PullRequest
13 голосов
/ 14 марта 2010

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

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

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

Спасибо.

Ответы [ 2 ]

61 голосов
/ 14 марта 2010

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

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

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

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

4 голосов
/ 14 марта 2010

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

- (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];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...