2016-04-06 34 views
1

私はbool値を送る必要があるHTTPリクエストを作成しています。私はその両方で試しました。@(YES)vs [NS番号番号WithBool:はい]

両方とも同じように動作しています。私は混乱していますが、それはより良いですか?それらの違いは何ですか?

+0

"Better"は何ですか? –

答えて

3

@(YES)は、[NSNumber numberWithBool:YES]と同じことを行うリテラルです。リテラルのパフォーマンスがダイレクトコールのように少し遅くなるかどうかはわかりません。

2

1は、literalです。もう一方はconvienienceイニシャライザによって作成されます。

彼らは同じ内容の同じ種類のオブジェクトになりますが、私は最初の方があなた(そしてあなたのコードを見ている他の人)にとって読みやすくなると思われます。

2

2つの方法に違いはありませんが、いずれかで問題ないはずです。私が好むものは[NSNumber numberWithBool:YES]です。デバッグのためにコードに戻ってくると読みやすくなります。 @(Yes)はnsnumberのリテラル構文です。NSStringを作成する@ "string"を使用すると全く同じwoks

2

Nope.Theコンパイラは@YES[NSNumber numberWithBool:YES]に変換します。

2

@(YES)はコンパイラの特性です。実際、@(YES)を[NSNumber numberWithBool:YES]に変換すると、パフォーマンスに差はありません。便宜と可読性のために提供されています(@ []、@ {}と似ています)。

-1

boolを送信するには:[NSNumber numberWithInt:1]