4

@3の代わりにできることはわかっています[NSNumber numberWithInt:3]
が、のリテラルは[NSNumber numberWithUnsignedInteger:3]何ですか?

4

3 に答える 3

8

@3Uorを使用できます@3UL(または通常の整数サフィックスを使用して型を変更します。たとえば@3ULLfor unsigned long long)。

NSNumber リテラルの詳細については、このページを参照してください。

于 2012-09-13T01:15:02.973 に答える
5

正しいリテラルを覚えていない場合でも、型キャストは機能します。

NSNumber* number = @((NSUInteger)3);
于 2012-09-13T01:23:56.287 に答える
2

@3ULは、NSNumberと明示的に同じ幅/符号の を提供しNSUIntegerます。

しかし、なぜこれが必要なのか自問してみてください。はC/Objective-C 1すべての3数値型で正確に表現できるため、同じように動作するオブジェクトが得られます。使用される定数の型は異なりますが、取得したオブジェクトはまったく同じ方法で使用でき、同じ一連のメソッドでボックス化解除できます。@3

1わかりました、わかりました。_Boolやなどの 1 ビットのみを表す型を除きますint : 1

于 2012-09-13T01:29:55.250 に答える