有人可以告诉我为什么以下是可以的:
if (newEditingMode) {
dayView.dayViewIsInEditingMode = YES;
}
else{
dayView.dayViewIsInEditingMode = NO;
}
但是以下错误Expression is not assignable
:
newEditingMode ? dayView.dayViewIsInEditingMode = YES : dayView.dayViewIsInEditingMode = NO;
答案 0 :(得分:4)
您可以使用括号,它将进行编译。请尝试以下方法。
newEditingMode ? (dayView.dayViewIsInEditingMode = YES) : (dayView.dayViewIsInEditingMode = NO);
但是,你不应该在三元条件本身内执行赋值;你应该使用它。
dayView.dayViewIsInEditingMode = newEditingMode ? YES : NO;
或者,在这种情况下,您可以完全放弃三元组,因为它是多余的。
dayView.dayViewIsInEditingMode = newEditingMode;
答案 1 :(得分:3)
三元运算符对运算顺序做了很奇怪的事情。这是一个可能有帮助的可行解决方案。
dayView.dayViewIsInEditingMode = (newEditingMode ? YES : NO);
看到你在做什么,你也可以这样写:
dayView.dayViewIsInEditingMode = newEditingMode;