Tengo una cadena numérica y he observado una discrepancia donde su intValue
es muy diferente de su valor de cadena. El código de abajo:- [NSString intValue] devolviendo un valor completamente diferente a la cadena dice
NSString *string = [result objectForKey:@"id"];
NSLog(@"ID %@",string);
NSLog(@"ID as integer %i",[string intValue]);
da una salida:
"ID 100004378121454"
"ID as integer 2147483647"
La única suposición lógica que puedo hacer es que la cadena es demasiado larga para ser convertido a un int
... En cualquier caso Probé longLongValue
y tal - para diferentes resultados, pero no el que debería ser.
Tienes razón al estar llegando a los límites de la int de 32 bits allí, pero longlongValue debería funcionar. ¿Cuál es el resultado entonces? –
intente utilizar unsigned int (u_int32 valor máximo 9,223,372,036,854,775,808) –
¿Sabe que la 'cadena' es, de hecho, un NSString y no un NSNumber? Es posible que desee consultar la clase. –