2014-02-16 1 views
0

Я извлекаю данные из Интернета, и у меня возникают проблемы с возвращаемыми числами. Например, когда int 1 возвращается с сервера, и я пытаюсь преобразовать этот int в NSNumber, значение NSNumber равно 151241152. Число немного отличается каждый раз, но оно всегда превышает 1 миллиард. Вот мой код:Ошибка преобразования int в NSNumber

int agrees = (int)[info objectForKey:kWaveAgrees]; 
wave.numberOfAgrees = [NSNumber numberWithInt:agrees]; 

Кто-нибудь знает, почему это происходит?

+2

возможно дубликат [как преобразовать NSNumber в целое в Objective-C] (http://stackoverflow.com/questions/3555906/how-to-convert-nsnumber-to-int-in-objective- c) – rmaddy

+0

Попробуйте 'NSLog (@"% @ ", [info objectForKey: kWaveAgrees]);'. Что это дает вам? – Undo

+0

Если возвращаемое значение имеет тип 'number', вы можете назначить целочисленное значение непосредственно' numberOfAgrees'. – Anupdas

ответ

1

NSNumber - это объект. Вы не можете использовать его в int, он должен быть сначала распакован.

int agrees = [[info objectForKey:kWaveAgrees] intValue];