Как преобразовать NSNumber в int в Objective-C

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

здесь мой код;

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

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

retriving.........

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

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

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

пока он не работает...

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

предложите..

Ответ 1

Посмотрите documentation. Используйте метод intValue:

int number = [[dict objectForKey:@"integer"] intValue];

Ответ 2

При необходимости следует придерживаться типов данных NSInteger. Поэтому вы должны создать такой номер:

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

Декодирование работает с методом integerValue, а затем:

NSInteger value = [number integerValue];

Ответ 4

Менее подробный подход:

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

Ответ 5

Проверенная однострочник:

int number = ((NSNumber*)[dict objectForKey:@"integer"]).intValue;