是否有可能将NSInteger转换为NSNumber?

快速的问题是有可能将NSInteger转换为NSNumber对象? 我需要将UIImageView对象的标记转换为NSNumber对象,因为我需要将它作为parameter passing给函数。

你不能转换它,因为NSInteger不是一个对象,只是一个内置types的别名。 你总是可以从NSInteger创build一个新的NSNumber对象,像这样:

 NSNumber *myNum = @(myNsIntValue); 

或者在以前版本的编译器中使用

 NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue]; 

Apple LLVM Compiler 4.0以来,有一种更简单的方法来创buildNSNumber对象:

 NSNumber *x = @1234; NSNumber *y = @(anIntegerVariable); 

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

 NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue]; 

因为doc说:

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

“numberWithInt:创build并返回一个包含给定值的NSNumber对象,将其视为一个带符号的int。