Я пытаюсь преобразовать объект NSString в NSNumber с тем же числовым значением. Когда я создаю объект NSString с помощью этого оператора ...
NSString *songID = [localNotif.userInfo objectForKey:@"SongID"];
var songID
содержит строковое значение @ "10359537395704663785"
. и когда я пытаюсь преобразовать его в объект NSNumber с помощью оператора ...
NSNumber *songIDNumber = [NSNumber numberWithLongLong:[songID longLongValue]];
var songIDNumber
содержит неправильное значение 9223372036854775807
Что я делаю не так? Также стоит отметить, что иногда этот код действительно работает и выдает правильное значение NSNumber, но в большинстве случаев он не работает, как показано выше.
Заранее благодарим за вашу помощь!
ОБНОВЛЕНИЕ: Боже, я люблю этот сайт! Спасибо unbeli и carl, Мне удалось исправить это, используя обновленный код для преобразования из NSString в NSNumber ...
unsigned long long ullvalue = strtoull([songID UTF8String], NULL, 0);
NSNumber *songIDNumber = [NSNumber numberWithUnsignedLongLong:ullvalue];