как конвертировать NSNumber в Int в Objective-C - PullRequest
117 голосов
/ 24 августа 2010

Прежде чем поместить значение int в словарь, я установил значение int как [NSNumber numberWithInt: 2], теперь, когда я пытаюсь получить обратно содержимое словаря, я хочу вернуть его в формате int .. как это сделать ??

вот мой код;

NSMutabelDictionary *dict = [[NSMutableDictionary alloc]init];
int intValue = 300;

[dict setObject:[NSNumber numberWithInt:intValue] forKey:@"integer"];

повторное получение .........

int number = [dict ObjectForKey:@"integer"];

.. оно выдает исключение, которое требуется, если приведение требуется ...я делаю это так ..

int number = (int)[dict ObjectForKey:@"integer"];

до сих пор не получается ...

как решить эту проблему? /

пожалуйста, предложите ..

Ответы [ 4 ]

189 голосов
/ 24 августа 2010

Посмотрите документацию .Используйте метод intValue:

int number = [[dict objectForKey:@"integer"] intValue];
58 голосов
/ 24 августа 2010

Вы должны придерживаться типов данных NSInteger, когда это возможно. Таким образом, вы должны создать номер так:

NSInteger myValue = 1;
NSNumber *number = [NSNumber numberWithInteger: myValue];

Декодирование работает по методу integerValue, тогда:

NSInteger value = [number integerValue];
4 голосов
/ 24 августа 2010

Используйте метод NSNumber intValue

Вот Справочная документация Apple

0 голосов
/ 15 июля 2015

Менее многословный подход:

int number =  [dict[@"integer"] intValue];
...