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."
