Objective-C で疑問符とコロン (?: 三項演算子) はどういう意味ですか? 質問する

Objective-C で疑問符とコロン (?: 三項演算子) はどういう意味ですか? 質問する

このコード行はどういう意味ですか?

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

そして私?:混乱させます。

ベストアンサー1

これはCです三項演算子(Objective-C は C のスーパーセットです):

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

意味的には以下と同等である

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

最初の要素がない三項演算子(例:variable ?: anotherVariable)は、(valOrVar != 0) ? valOrVar : anotherValOrVar

おすすめ記事