我没有多次使用三元运算符,我收到了错误:
(isInitializing) ? (return YES) : (isInitializing = 1);
错误是:“预期表达式”,它指向return YES
。
答案 0 :(得分:3)
不要使用三元运算符来做"做东西"但要返回两个值中的一个。 所以这是一个有效的案例:
NSString *something = (isInitializing ? @"value a" : @"value b");
在您的情况下,您可能希望这样做:
if (isInitializing) {
return YES;
} else {
isInitializing = 1;
}
答案 1 :(得分:1)
三元运算符用于根据条件返回两个值中的一个。它不是用于执行语句,因此return
有点问题。当你不想区分值时,我宁愿使用if
,而是有两个不同的执行路径。