'Objective C'에 해당되는 글 1건

  1. 2011.01.31 objective c에서 NSString to unsigned long long 변환 1

objective c에서 NSString to unsigned long long 변환

|
별것 아닌 것 같지만 기록을 남깁니다.

보통 objective c 에서 파일 사이즈를 unsigned long long으로 쓰게 되는데
웹을 통해서 api 호출등을 하고나면 XML이나 json으로 data를 받게 되면
보통 이를 NSString으로 쓰게 됩니다.

이 때 NSString --> unsigned long long으로 바꾸지 못하는데요
NSString에 longLongValue라는 method를 제공하지만
이는 unsigned long long과 범위가 틀리기 때문에
범위를 넘어가는 long long형의 범위를 넘어가게 되면 over flow가 일어나게 됩니다.

이 때 이용할 수 있는 것은 C의 함수 입니다.
(다들 objective c에서 C 함수를 쓸 수 있는 건 알지 않을까요? ㅎㅎ)
strtoull()를 쓰면 됩니다.

linux에서 man을 쳐보면 아래 처럼 나옵니다. return과 param은 아래처럼 나옵니다.
unsigned long long int
strtoull(const char *nptr, char **endptr, int base);

첫번째 파라메터는 변환할 스트링
두번째 파라메터는 포인트의 끝, 보통 NULL을 넘깁니다.
세번째 파라메터는 시작하는 숫자입니다.(0을 넣으면 unsigned가 되겠죠? ㅎㅎ)

자세한 설명은 
를 참고 하세요~

NSString *number = @"123123123123";

unsigned long long unsignedLongLongValue = strtoull([number UTF8String], NULL, 0);


기본적인 코드는 위처럼 쓰시면 됩니다.


And
prev | 1 | next