Is it possible to cast a NSInteger to a NSNumber object?
I need to convert the tag of a UIImageView object to a NSNumber object because I need to pass it as an argument to a function.
Is it possible to cast a NSInteger to a NSNumber object?
I need to convert the tag of a UIImageView object to a NSNumber object because I need to pass it as an argument to a function.
You cannot cast it because NSInteger
is not an object, just an alias for a built-in type. You can always create a new NSNumber
object from NSInteger
, like this:
NSNumber *myNum = @(myNsIntValue);
or in the prior version of the compiler, use
NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];
since Apple LLVM Compiler 4.0
, there is an easier way to create NSNumber
object:
NSNumber *x = @1234;
NSNumber *y = @(anIntegerVariable);
This is the more correct answer and it will not produce unexpected error.
NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];
Because the doc said:
"numberWithInteger: Creates and returns an NSNumber object containing a given value, treating it as an NSInteger."
"numberWithInt: Creates and returns an NSNumber object containing a given value, treating it as a signed int."
© 2022 - 2024 — McMap. All rights reserved.