J'essaie de convertir un objet NSString en un NSNumber avec la même valeur numérique. Lorsque je crée l'objet NSString en utilisant cette déclaration ...Pourquoi la classe NSNumber ne convertit-elle pas correctement mon objet NSString en un long chemin?
NSString *songID = [localNotif.userInfo objectForKey:@"SongID"];
le var songID
contient la valeur de chaîne @"10359537395704663785"
. et quand je tente de le convertir en un objet NSNumber utilisant l'instruction ...
NSNumber *songIDNumber = [NSNumber numberWithLongLong:[songID longLongValue]];
le var songIDNumber
contient la valeur incorrecte de 9223372036854775807
Qu'est-ce que je fais mal? Il peut également être utile de noter que parfois ce code fonctionne et produit la valeur NSNumber correcte, mais la plupart du temps, il échoue comme indiqué ci-dessus.
Merci d'avance pour votre aide!
MISE À JOUR: Dieu J'aime ce site! Merci à unbeli et karl, j'ai pu le réparer en utilisant le code mis à jour pour convertir du NSString au NSNumber ...
unsigned long long ullvalue = strtoull([songID UTF8String], NULL, 0);
NSNumber *songIDNumber = [NSNumber numberWithUnsignedLongLong:ullvalue];