三元运算符错误 - “预期表达式”

时间:2015-01-30 18:14:13

标签: objective-c ternary-operator

我没有多次使用三元运算符,我收到了错误:

(isInitializing) ? (return YES) : (isInitializing = 1);

错误是:“预期表达式”,它指向return YES

2 个答案:

答案 0 :(得分:3)

不要使用三元运算符来做"做东西"但要返回两个值中的一个。 所以这是一个有效的案例:

NSString *something = (isInitializing ? @"value a" : @"value b");

在您的情况下,您可能希望这样做:

if (isInitializing) {
  return YES;
} else {
  isInitializing = 1;
}

答案 1 :(得分:1)

三元运算符用于根据条件返回两个值中的一个。它不是用于执行语句,因此return有点问题。当你不想区分值时,我宁愿使用if,而是有两个不同的执行路径。