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