是否有可能将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。