42

NSInteger を NSNumber オブジェクトにキャストすることは可能ですか?

関数に引数として渡す必要があるため、UIImageView オブジェクトのタグを NSNumber オブジェクトに変換する必要があります。

4

3 に答える 3

111

はオブジェクトではなく、組み込み型の単なるエイリアスであるため、キャストできません。次のようにNSInteger、いつでもNSNumberから新しいオブジェクトを作成できます。NSInteger

NSNumber *myNum = @(myNsIntValue);

またはコンパイラの以前のバージョンでは、使用

NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];
于 2012-03-14T07:15:45.283 に答える
7

これはより正しい答えであり、予期しないエラーは発生しません。

NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];

ドキュメントが言ったので:

「numberWithInteger: 指定された値を含む NSNumber オブジェクトを作成して返し、NSInteger として扱います。」

「numberWithInt: 指定された値を含む NSNumber オブジェクトを作成して返し、signed int として扱います。」

于 2013-02-03T04:53:55.497 に答える