这行代码是什么意思?
label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;
和?混淆:我。
?
:
这是 C三元运算符(Objective-C 是 C 的超集):
在语义上等价于
if(inPseudoEditMode) { label.frame = kLabelIndentedRect; } else { label.frame = kLabelRect; }
没有第一个元素的三元(例如variable ?: anotherVariable)的含义与(valOrVar != 0) ? valOrVar : anotherValOrVar
variable ?: anotherVariable
(valOrVar != 0) ? valOrVar : anotherValOrVar