2015-02-09 5 views
0
if ([self errorIsServerError:error] || [self errorIsBadRequest:error] || [self errorIsNetworkError:error]) { 
    return YES; 
} 

Методы errorIsServerError:, errorIsBadRequest: и errorIsNetworkError: все возвращают BOOL YES или NO.Что здесь происходит?

Но я не понимаю синтаксис. Это:

if (YES || YES || YES) { return YES; } 

?

ответ

3

|| эквивалентно высказыванию «или». Таким образом, ваш код возвращает true, если какое-либо из значений истинно. Это то, что он говорит:

if ([self errorIsServerError:error] or [self errorIsBadRequest:error] or [self errorIsNetworkError:error]) 

Если затем

{ 
    return YES; 
} 
2

Это не совсем понятно, что вы просите, но в целом, вы, вероятно, ожидая ни один этих ошибок прийти через, то есть это if условие будет оценивать ложь и ваша программа может пойти по пути.

3

любой из них истинен Каждый из этих возвращений YES, если эта конкретная категоризация относится к данной ошибке. Если ошибка является ошибкой сервера или сети или неправильным запросом, метод вернет YES.

Вы можете посмотреть на это так:

if ([self errorIsServerError:error]) { 
    // The error is a server error 
    return YES; 
} else if ([self errorIsBadRequest:error]) { 
    // The error is a bad request 
    return YES; 
} else if ([self errorIsNetworkError:error]) { 
    // The error is a network error 
    return YES; 
} 

В любом случае, он будет возвращать да, если ошибка любого из этих типов. Он также вернет YES, если это два или все из этих типов (|| - логический (включительно) «или» оператор.

Если это не тот тип, ваш метод будет продолжаться до тех пор, пока он не попадет в другой оператор возврата.

Смежные вопросы