casting - ¿Es posible enviar un NSInteger a NSNumber?
tags (3)
Pregunta rápida: ¿es posible enviar un NSInteger a un objeto NSNumber? Necesito convertir la etiqueta de un objeto UIImageView a un objeto NSNumber porque necesito pasarlo como argumento a una función.
Esta es la respuesta más correcta y no producirá un error inesperado.
NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];
Porque el doctor dijo:
"numberWithInteger: Crea y devuelve un objeto NSNumber que contiene un valor dado, tratándolo como un NSInteger".
"numberWithInt: crea y devuelve un objeto NSNumber que contiene un valor dado, tratándolo como un int firmado".
desde Apple LLVM Compiler 4.0 , hay una manera más fácil de crear NSNumber objeto NSNumber :
NSNumber *x = @1234;
NSNumber *y = @(anIntegerVariable);
No puede NSInteger porque NSInteger no es un objeto, solo un alias para un tipo incorporado. Siempre puede crear un nuevo objeto NSNumber desde NSInteger , como este:
NSNumber *myNum = @(myNsIntValue);
o en la versión anterior del compilador, use
NSNumber *myNum = [NSNumber numberWithInteger:myNsIntValue];