使用目标 C 将 UUID 转换为十六进制表示



我有一个UUID,比如68753A44-4D6F-1226-9C60-0050E4C00067,需要转换为0xD7,0x36,0x95,0x0A,0x4D,0x6E,0x12,0x26,0x80,0x3A,0x00,0x50,0xE4,0xC0,0x00,0x67。

有人可以让我知道如何在可可或目标C中做什么吗

任何帮助都非常感谢。

谢谢。

使用

CFUUIDCreateFromString() 将字符串转换为 CFUUIDRef,然后使用 CFUUIDGetUUIDBytes() 获取原始字节。

以下是帮助我解决问题的代码。

NSString *str3 = @"16433D43-C5DC-43A8-A35D-3F27ECCACFDC";
NSData* data = [str3 dataUsingEncoding:NSUTF8StringEncoding];
NSMutableString *hex = [NSMutableString string];
unsigned char *bytes = (unsigned char *)[data bytes];
char temp[3];
int i = 0;
for (i = 0; i < [data length]; i++) {
    temp[0] = temp[1] = temp[2] = 0;
    (void)sprintf(temp, "%02x", bytes[i]);
    [hex appendString:[NSString stringWithUTF8String: temp]];
}
NSLog(@"Hex %@",hex);

输出将是这样的:

33343445323944452D333946352D343941372D414543312D453539423130443444413836

最新更新