在目标-c中,问号和冒号(?:三元运算符)意味着什么?这一行代码是什么意思?label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;这个?和:把我弄糊涂了。
3 回答
莫回无
TA贡献1865条经验 获得超7个赞
这是C三元算子(目标-C是C的超集):
label.frame = (inPseudoEditMode) ? kLabelIndentedRect : kLabelRect;
在语义上等同于
if(inPseudoEditMode) { label.frame = kLabelIndentedRect;} else { label.frame = kLabelRect;}
没有第一元素的三元。variable ?: anotherVariable
)指的是(valOrVar != 0) ? valOrVar : anotherValOrVar
慕容3067478
TA贡献1773条经验 获得超3个赞
condition ? valueIfTrue : valueIfFalse
慕丝7291255
TA贡献1859条经验 获得超6个赞
三元运算符的重要之处在于,它可以在if-Other不能使用的地方使用。IE:在条件或方法参数内。
[NSString stringWithFormat: @"Status: %@", (statusBool ? @"Approved" : @"Rejected")]
.这是预处理常量的一个很好的用途:
// in your pch file...#define statusString (statusBool ? @"Approved" : @"Rejected") // in your m file...[NSString stringWithFormat: @"Status: %@", statusString]
这使您不必使用和释放局部变量的if-Other模式。
- 3 回答
- 0 关注
- 735 浏览
添加回答
举报
0/150
提交
取消