NSDictionary에 추가하기 전에 int를 NSNumber로 변환 [NSNumber numberWithInt:42]
하거나 사용합니다 @(42)
.
int intValue = 42;
NSNumber *numberValue = [NSNumber numberWithInt:intValue];
NSDictionary *dict = @{ @"integer" : numberValue };
NSDictionary에서 값을 검색 할 때 NSNumber에서 int로 다시 변환하려면 어떻게해야합니까?
NSNumber *number = dict[@"integer"];
int *intNumber = // ...?
이렇게하면 캐스팅이 필요하다는 예외가 발생합니다.
int number = (int)dict[@"integer"];
답변
설명서를 살펴보십시오 . intValue
방법을 사용하십시오 :
NSNumber *number = [dict objectForKey:@"integer"];
int intValue = [number intValue];
답변
NSInteger
가능 하면 데이터 유형을 고수해야 합니다. 따라서 다음과 같은 번호를 생성합니다.
NSInteger myValue = 1;
NSNumber *number = [NSNumber numberWithInteger: myValue];
디코딩은 integerValue
다음 방법으로 작동합니다 .
NSInteger value = [number integerValue];
답변
답변
덜 장황한 접근 방식 :
int number = [dict[@"integer"] intValue];
답변
테스트 된 한 줄 :
int number = ((NSNumber*)[dict objectForKey:@"integer"]).intValue;