簡単な質問-NSIntegerをNSNumberオブジェクトにキャストすることは可能ですか? UIImageViewオブジェクトのタグをNSNumberオブジェクトに変換する必要があります。関数に引数として渡す必要があるためです。
NSInteger
はオブジェクトではなく、単なる組み込み型のエイリアスであるため、castできません。次のように、NSNumber
からいつでも新しいNSInteger
オブジェクトを作成できます。
NSNumber *myNum = @(myNsIntValue);
または、以前のバージョンのコンパイラでは、次を使用します
NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];
Apple LLVM Compiler 4.0
、NSNumber
オブジェクトを作成する簡単な方法があります。
NSNumber *x = @1234;
NSNumber *y = @(anIntegerVariable);
これはより正解であり、予期しないエラーは発生しません。
NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];
ドキュメントが言ったので:
「numberWithInteger:指定された値を含むNSNumberオブジェクトを作成して返し、NSIntegerとして扱います。」
「numberWithInt:指定された値を含むNSNumberオブジェクトを作成して返し、それを符号付きintとして扱います。」