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];