NSString -> CBUUID
NSString *string = [@"233R194013780790" toUUID];
CBUUID *harexUUID = [CBUUID UUIDWithString:string];
// 결과 :
// 32333352-3139-3430-3133-373830373930
CBUUID -> NSString
// 32333352-3139-3430-3133-373830373930
NSString *uuidString = [harexUUID representativeString];
NSString *tid = [harexUUID toString];
// 결과 :
// 233R194013780790
관련 함수 :
// String to Hexadecimal String
-(NSString *)toHex {
char *utf8 = (char *)[self UTF8String];
NSMutableString *hex = [NSMutableString string];
while ( *utf8 ) {
[hex appendFormat:@"%02X" , *utf8++ & 0x00FF];
}
return [NSString stringWithFormat:@"%@", hex];
}
// Hexadecimal String to NSData
-(NSData *)hex2Data {
NSMutableData *stringData = [[NSMutableData alloc] init];
unsigned char whole_byte;
char byte_chars[3] = {'\0','\0','\0'};
int i;
for (i=0; i < [self length] / 2; i++) {
byte_chars[0] = [self characterAtIndex:i*2];
byte_chars[1] = [self characterAtIndex:i*2+1];
whole_byte = strtol(byte_chars, NULL, 16);
[stringData appendBytes:&whole_byte length:1];
}
return stringData;
}
-(CBUUID *)toCBUUID {
if (NO == [self isValidUUID]) {
NSLog(@"포멧 비정상.");
return nil;
}
return [CBUUID UUIDWithString:self];
}
-(BOOL)isValidUUID {
return (BOOL)[[NSUUID alloc] initWithUUIDString:self];
}
// 문자열을 hex로 변경한뒤 UUID포멧으로 변경
-(NSString *)toUUID {
NSString *string = self;
if (string.length < 16) {
NSString *spaceString = @"";
for (NSInteger i=0; i<(16 - string.length); ++i) {
spaceString = [spaceString stringByAppendingString:@" "];
}
// 길이가 작을 경우 앞쪽에 공백추가
//string = [NSString stringWithFormat:@"%@%@", spaceString, self];
// 길이가 작을 경우 뒤쪽에 공백추가
string = [NSString stringWithFormat:@"%@%@", self, spaceString];
}
NSData *data = [string toData];
NSUInteger bytesToConvert = [data length];
const unsigned char *uuidBytes = [data bytes];
NSMutableString *outputString = [NSMutableString stringWithCapacity:16];
for (NSUInteger currentByteIndex = 0; currentByteIndex < bytesToConvert; currentByteIndex++) {
switch (currentByteIndex) {
case 3:
case 5:
case 7:
case 9:[outputString appendFormat:@"%02X-", uuidBytes[currentByteIndex]]; break;
default:[outputString appendFormat:@"%02X", uuidBytes[currentByteIndex]];
}
//SLog(@"%@", outputString);
}
2020/05/29 - [개발노트] - HTTP Content-Type
2020/05/28 - [iOS/Swift] - SEED 블록암호 알고리즘 CBC (Cipher Block Chaining) 예제
2020/05/28 - [개발노트] - HMAC SHA256
2020/05/26 - [iOS/Swift] - Array <-> Data 변환
2020/05/25 - [분류 전체보기] - UserAgent 추가
2020/05/25 - [iOS/Swift] - RSA 암호화 / 복호화
2020/05/25 - [iOS/Swift] - Base64 인코딩/디코딩
2020/05/19 - [AI/Algorithm] - Generic algorithm
2020/05/19 - [AI/Algorithm] - neural network
2020/05/19 - [AI/Algorithm] - minimax full search example
2020/05/19 - [AI/Algorithm] - minimax, alpha-beta pruning
2020/05/19 - [iOS/Tips] - Bitbucket Carthage 사용
2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (3/3) - 메모리 덤프
2020/05/19 - [iOS/Jailbreak] - Fridump 사용법 (2/3) - Mac OS X 환경 구축
'개발 > iOS' 카테고리의 다른 글
OpenGL ES View Snapshot (0) | 2020.05.29 |
---|---|
Merge two different images in swift (0) | 2020.05.29 |
SEED 블록암호 알고리즘 CBC (Cipher Block Chaining) 예제 (1/2) (0) | 2020.05.28 |
Array <-> Data 변환 (0) | 2020.05.26 |
UserAgent 변경/추가 (0) | 2020.05.25 |