objective-c - 三元条件运算符中的赋值产生 “Expression is not assignable”错误

标签 objective-c compiler-errors conditional variable-assignment ternary-operator

谁能告诉我以下原因为何:

if (newEditingMode) {
    dayView.dayViewIsInEditingMode = YES;
}
else{
    dayView.dayViewIsInEditingMode = NO;
}

但是以下给出了错误Expression is not assignable:
newEditingMode ? dayView.dayViewIsInEditingMode = YES : dayView.dayViewIsInEditingMode = NO;

最佳答案

您可以使用括号并将其编译。请尝试以下方法。

newEditingMode ? (dayView.dayViewIsInEditingMode = YES) : (dayView.dayViewIsInEditingMode = NO);

但是,您不应该在三元条件本身内部执行赋值。您应该改用它。
dayView.dayViewIsInEditingMode = newEditingMode ? YES : NO;

或者,在这种情况下,您可以完全删除三元,因为它是多余的。
dayView.dayViewIsInEditingMode = newEditingMode;

关于objective-c - 三元条件运算符中的赋值产生 “Expression is not assignable”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16255601/

相关文章:

c++ - 为什么我会收到一条错误消息,告诉我构造函数没有命名类型?

java - 如何将类型为byte []的对象转换为字符串

javascript - Vue 组件位于另一个组件中

python - 基于行输入的 Python 条件和

c# - 在 C# 中有条件地调用构造函数

iphone - 从同步请求切换到带有图片上传的异步请求?

objective-c - 不进入我的构造函数

ios - Xcode 4.3.1 语法错误

html - 从 URL (PATH) 下载 - iPhone

SQL 子查询 COUNT CASE