как конвертировать NSNumber в int в Objective-C


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

вот мой код;

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

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

retriving.........

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

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

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

stil это не работает...

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

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

4 114

4 ответа:

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

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

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

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

декодирование работает с integerValue способ далее:

NSInteger value = [number integerValue];

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

здесь справочная документация Apple

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

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