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

方法errorIsServerError:errorIsBadRequest:,並且errorIsNetworkError:都返回BOOL YESNO這裏真的發生了什麼?

但我不明白的語法。它是:

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

如果它不是任何類型,那麼您的方法將繼續,直到它遇到另一個return語句。

相關問題