这里到底发生了什么?

What's really happen here?

 if ([self errorIsServerError:error] || [self errorIsBadRequest:error] || [self errorIsNetworkError:error]) {
    return YES;
}

方法 errorIsServerError:errorIsBadRequest:errorIsNetworkError: 都是 return BOOL YESNO

但是我不明白语法。是吗:

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

不太清楚你在问什么,但总的来说,你可能期望 none 出现这些错误,这意味着 if 条件将评估为 false,您的程序可以继续进行。

||相当于说 'or'。因此,如果任何值为真,您的代码将返回真。这就是它的意思:

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

如果其中任何一条为真,则

{
    return YES;
}

每个 return YES 如果特定分类适用于给定的错误。如果错误是服务器或网络错误,或者错误请求,该方法将 return 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;
}

在任何一种情况下,如果错误是这些类型中的任何一种,它将 return 是。它也将 return YES 如果它是两个或所有这些类型(|| 是逻辑(包含)"or" 运算符)。

如果它是 none 类型,您的方法将继续,直到遇到另一个 return 语句。