Estoy tratando de convertir un objeto NSString a un NSNumber con el mismo valor numérico. Cuando creo el objeto NSString usando esta declaración ...¿Por qué la clase NSNumber no está convirtiendo correctamente mi objeto NSString en algo largo?
NSString *songID = [localNotif.userInfo objectForKey:@"SongID"];
la var songID
contiene el valor de cadena @"10359537395704663785"
. y cuando intento para convertirlo en un objeto NSNumber utilizando la sentencia ...
NSNumber *songIDNumber = [NSNumber numberWithLongLong:[songID longLongValue]];
la var songIDNumber
contiene el valor incorrecto de 9223372036854775807
¿Qué estoy haciendo mal? También podría valer la pena observar que a veces este código funciona y produce el valor de NSNumber correcto, pero la mayoría de las veces falla como se muestra arriba.
Gracias de antemano por su ayuda!
ACTUALIZACIÓN: Dios I love this site! Gracias a unbeli y Carl, yo era capaz de arreglarlos con el código actualizado para la conversión de la NSString a la NSNumber ...
unsigned long long ullvalue = strtoull([songID UTF8String], NULL, 0);
NSNumber *songIDNumber = [NSNumber numberWithUnsignedLongLong:ullvalue];