programing

목표-C에서 NS 번호를 int로 변환

showcode 2023. 5. 5. 10:00
반응형

목표-C에서 NS 번호를 int로 변환

사용합니다[NSNumber numberWithInt:42]또는@(42)int를 NSDictionary에 추가하기 전에 NSNumber로 변환하는 방법

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];

NSNumber 방법 사용intValue

다음은 Apple 참조 문서입니다.

테스트를 거친 원라이너:

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

덜 장황한 접근법:

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

언급URL : https://stackoverflow.com/questions/3555906/convert-nsnumber-to-int-in-objective-c

반응형