casting tags nsnumber nsinteger

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