Почему нет? • Класс NSNumber правильно преобразовал мой объект NSString в long long?

Я пытаюсь преобразовать объект 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];
5
задан BeachRunnerFred 1 September 2010 в 21:42
поделиться