objective-c - 问号和冒号是什么意思(?: ternary operator) mean

这行代码是什么意思?

label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;

?: 让我很困惑。

最佳答案

这是 C ternary operator (Objective-C 是 C 的超集):

label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;

在语义上等价于

if(inPseudoEditMode) {
 label.frame = kLabelIndentedRect;
} else {
 label.frame = kLabelRect;
}

没有第一个元素的三元组(例如 variable ?: anotherVariable)与 (valOrVar != 0) 的含义相同吗? valOrVar : 另一个ValOrVar

关于objective-c - 问号和冒号是什么意思(?: ternary operator) mean in objective-c?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2595392/

相关文章:

ios - 如何强制 NSLocalizedString 使用特定语言

objective-c - 对于 Objective-C 中用于访问 NSMutable 字典的每个

ios - 如何以编程方式确定我的应用程序是否在 iphone 模拟器中运行?

ios - 总是将 self 的弱引用传递到 ARC 中的 block 中?

objective-c - 将 NSDate 转换为 NSString

objective-c - UILabel中如何控制行距

ios - 解释 iOS7 中自动调整 ScrollView 插入、扩展布局包含不透明条、边缘For

ios - 使用 Storyboard 以编程方式设置初始 View Controller

objective-c - 如何将 Swift 代码导入到 Objective-C?

ios - 不能在 Objective-C 中使用 Swift 类