如何将 NSInteger 转换为 NSNumber 对象?
我需要将 UIImageView 对象的标签转换为 NSNumber 对象,因为我需要将其作为参数传递给一个函数。
如何将 NSInteger 转换为 NSNumber 对象?
我需要将 UIImageView 对象的标签转换为 NSNumber 对象,因为我需要将其作为参数传递给一个函数。
你无法将其转换,因为NSInteger
不是一个对象,而只是一个内置类型的别名。你始终可以从NSInteger
创建一个新的NSNumber
对象,像这样:
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对象,将其视为有符号int。”