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 回答
19

因为Apple LLVM Compiler 4.0,有一种更简单的方法来创建NSNumber对象:

NSNumber *x = @1234; 
NSNumber *y = @(anIntegerVariable);
于 2013-10-18T07:08:20.430 回答
7

这是更正确的答案,不会产生意外错误。

NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];

因为医生说:

“numberWithInteger:创建并返回一个包含给定值的 NSNumber 对象,将其视为 NSInteger。”

“numberWithInt:创建并返回一个包含给定值的 NSNumber 对象,将其视为有符号整数。”

于 2013-02-03T04:53:55.497 回答