항상 찾아다녔던 데이터 형변환
보고도 또 까먹고 다시 또 찾고...
잘 정리되어 있는 아래의 사이트에서 발췌 했습니다.
http://funnyrella.blogspot.kr/2014/01/94-nsstring-nsdata-char.html
NSString 변환 <—> NSData, char[]
1. NSData —> NSString
NSString *plainString = [[NSString alloc] initWithData:plainData encoding:NSUTF8StringEncoding];
2. NSString —> NSData
NSData *plainData = [inputStr dataUsingEncoding:NSUTF8StringEncoding];
——————————
NSData *plainData = [NSData dataWithBytes:[inputStr UTF8String] length:[inputStr length]];
——————————
const char *cstr = [inputStr cStringUsingEncoding:NSUTF8StringEncoding]
NSData *data = [NSData dataWithBytes:cstr length:input.length];
! NSData to NSString returns Null?
: NSData의 값은 분명히 있는데, NSString으로 변환하고 나면 값이 nil인경우, 인코딩 옵션을 변경해 봐라….
NSString *a = [[NSString alloc] initWithBytes:[data bytes] length:[data length] encoding:NSASCIIStringEncoding];
3. NSString —> char[]
char chPtr[10];
memset(chPtr, 0, sizeof(chPtr)); //기본값 초기화
[inputStr getCString:chPtr maxLength:sizeof(chPtr) encoding:NSUTF8StringEncoding];
4. char[] —> NSString
const char chStr[10] = {'1', '2', '3', '4', '5', 'a', 'b', 'c', 'd', 'e'}; //할당 시 값지정
NSString * outputStr = [NSString stringWithFormat:@"%s", chStr];
NSLog(@"outputStr=[%@]“, outputStr); //outputStr=[12345abcde]
5.char[]헥사값 —> NSString
unsigned char result[10] = {'1', '2', 'a', 'b', 'Z', 2, 20, 64, 216};
NSString* outputStr = [NSString stringWithFormat:@"%02X %02X %02X %02X %02X %02X %02X %02X %02X %02X",
result[0], result[1], result[2], result[3], result[4],
result[5], result[6], result[7], result[8], result[9]];
반응형
'Software > iOS & Objective-C' 카테고리의 다른 글
ARC와 strong, weak, 그리고 cycle (0) | 2015.06.22 |
---|---|
[iOS] AES256 Descryption 에 대하여... (0) | 2014.02.11 |
iPhone Application Life cylce (0) | 2013.05.16 |
About...Notification...!!! (0) | 2013.04.23 |
객체간을 여행하는 데이터를 위한 안내서 (0) | 2013.04.10 |