2014-01-30 6 views
0

그래서 열거 형 문자열로 데이터베이스에 열거 형 NSString 인코딩을 저장합니다. 이 값 중 하나입니다NSStringEncoding - 열거 형의 열거 형 열거

NSUTF16LittleEndianStringEncoding = 0x94000100, 

그리고 값 0x94000100의 문자열로 저장하고있다.

 NSString* encodingValueAsString = [object objectForKey:kWSWordlistFilesEncodingKey]; 

     // Convert 'encodingValueAsString' to variable 'encoding' that can act as enum 

     NSString* dataString = [[NSString alloc] initWithData:data 
                  encoding:encoding]; 

가 어떻게이없는 줄 것을 쓰는가 : 내 목표는 내가 인코딩하는 데 사용할 수있는 NSString이 값을 읽을 수 있지만 다음 값으로 바꿀 것입니다?

답변

1

enum 값을 문자열로 /로 변환 할 이유가 없습니다. 저장하고 int으로 다시 읽어주십시오.

그러나 원래의 질문에 짧은 대답은 다음과 같습니다

NSStringEncoding encoding = [encodingValueAsString intValue]; 

기다립니다 - 당신이 16 진수 값으로 문자열을 저장하기 때문에 작동하지 않습니다.

당신은 NSScanner를 사용해야합니다 :

NSScanner *scanner = [NSScanner scannerWithString:encodingValueAsString]; 
NSStringEncoding encoding; 
[scanner scanHexInt:&encoding]; 

참조 쉬울 것 int 대신 문자열 사용하는 이유는 무엇입니까?