快速提问 - 是否可以将NSInteger转换为NSNumber对象?我需要将UIImageView对象的标记转换为NSNumber对象,因为我需要将它作为参数传递给函数。
答案 0 :(得分:104)
你不能施放它,因为NSInteger
不是一个对象,只是一个内置类型的别名。您始终可以从NSNumber
创建新的NSInteger
对象,如下所示:
NSNumber *myNum = @(myNsIntValue);
或在编译器的先前版本中,使用
NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];
答案 1 :(得分:17)
自Apple LLVM Compiler 4.0
以来,有一种更简单的方法来创建NSNumber
对象:
NSNumber *x = @1234;
NSNumber *y = @(anIntegerVariable);
答案 2 :(得分:7)
这是更正确的答案,不会产生意外错误。
NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];
因为医生说:
“numberWithInteger: 创建并返回包含给定值的NSNumber对象,将其视为NSInteger。“
“numberWithInt: 创建并返回包含给定值的NSNumber对象,将其视为signed int。“