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