Tengo una pregunta acerca de seguridad o convertir correctamente un NSString
en tipos tales como CGFloat
y NSInteger
, teniendo en cuenta que estos son simplemente tipos de contenedor que Apple creó para utilizar diferentes primitivas dependiendo de ciertos factores (por ejemplo, NSInteger
es typedef
'd a int
en arquitecturas de 32 bits y long
en arquitecturas de 64 bits).correctamente la conversión de NSString a CGFloat, NSInteger, etc
Por ejemplo, sé que puedo usar algo como [ someString intValue ]
o [ someString longValue ]
, pero ¿cómo puedo decir que en lugar quiero someString
para convertirse en un NSInteger
, lo que permite la precisión de la primitiva subyacente de ser elegido por el compilador? Decir algo como NSInteger integer = [ someString intValue ]
daría como resultado la pérdida de datos si se creó someString
a partir de un NSInteger
en un sistema de 64 bits, ¿verdad? ¿Cuál es la mejor manera de lidiar con esta situación?
Ah, gracias. Ni siquiera noté 'integerValue'. – LucasTizma
Es por eso que debe leer las notas de la versión cada vez que sale una versión de sistema operativo importante. Siempre hay algunas adiciones útiles a las clases que hemos conocido y amado durante muchos años. – NSResponder
¿Qué hay para convertir a CGFloat? – Casebash