2011-11-27 5 views
0

私はのDropbox APIの上に読んでいたと私は、この行が見つかりました:私は前にその構文を見たことがないこれはどういう意味ですか?NSString * string = NO? @ "aaa":@ "bbb";

NSString* title = [[DBSession sharedSession] isLinked] ? @"Unlink Dropbox" : @"Link Dropbox"; 

を?それは何と呼ばれ、それは何を意味しますか?私はそれを見るだけで何ができるのかを知ることができますが、誰かがそれについて教えてくれますか? Cいわゆるternary operator

三項演算子である

+0

申し訳ありませんが、私は今、これはおそらく重複して実現しています。 –

答えて

12

は、次のパターンcondition ? true-expression : false-expressionを有します。

conditionYESと評価された場合、true-expressionが評価されます。そうでない場合はfalse-expressionとなります。あなたの特定のケースtitle

はそう@"Link Dropbox"@"Unlink Dropbox"[[DBSession sharedSession] isLinked]もし戻っYESに割り当てになるだろう。

+0

2つの結果しか割り当てられない場合は、代わりに使用するのが非常にいいです。 –

+0

'[NSArray firstObject]'àla '([配列数]?[配列objectAtIndex:0]:nil)'の不足を回避する必要があるときに便利です。 – Regexident

+1

ウォークアラウンドの必要はありません。[array lastObject]を使用すると、配列が空の場合に 'nil'を受け取ります。 –

0

これはTernary Operatorです。あなたも同じようBOOL sの値を印刷し、これを使用することができ

2

NSLog(@"%@", boolVal ? @"YES" : @"NO"); 
関連する問題