Por ejemplo, al pasar un value
mensaje a una NSInteger
instancia como esta
[a value]
provoca un EXC_BAD_ACCESS.
Entonces, ¿cómo convertir un NSInteger
a int
?
Si es relevante, solo se utilizan números pequeños <32.
objective-c
cocoa
nsinteger
Jeffrey
fuente
fuente
Respuestas:
Ta da:
NSInteger
no es más que un int de 32/64 bits. (usará el tamaño apropiado según el sistema operativo / plataforma que esté ejecutando)fuente
Si desea hacer esto en línea, simplemente transmita
NSUInteger
oNSInteger
a unint
:fuente
NSInteger
valor en lugar de unint
. En ningún caso es una solución multilínea.No estoy seguro de las circunstancias en las que necesita convertir un
NSInteger
en unint
.NSInteger es solo un typedef:
NSInteger Se utiliza para describir un número entero independientemente de si está compilando para un sistema de 32 bits o de 64 bits.
Puede usar
NSInteger
cualquier lugar que useint
sin convertirlo.fuente
Usado comúnmente en UIsegmentedControl, aparece un "error" al compilar en 64 bits en lugar de 32 bits, una forma fácil de no pasarlo a una nueva variable es usar estos consejos, agregar (int) :
en vez de :
fuente