Objective c 使用Objective C将UUID转换为十六进制表示

Objective c 使用Objective C将UUID转换为十六进制表示,objective-c,cocoa,Objective C,Cocoa,我有一个UUID,比如68753A44-4D6F-1226-9C60-0050E4C0067,它需要转换成0xD7、0x36、0x95、0x0A、0x4D、0x6E、0x12、0x26、0x80、0x3A、0x00、0x50、0xE4、0xC0、0x00、0x67 有人能告诉我如何使用cocoa或objective C吗 非常感谢您的帮助 谢谢。使用CFUUIDCreateFromString()将字符串转换为CFUUIDRef,然后使用CFUUIDGetUUIDBytes()获取原始字节。下面

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

有人能告诉我如何使用cocoa或objective 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);
NSString*str3=@“16433D43-C5DC-43A8-A35D-3F27ECCACFDC”;
NSData*data=[str3 dataUsingEncoding:NSUTF8StringEncoding];
NSMutableString*十六进制=[NSMutableString];
无符号字符*字节=(无符号字符*)[数据字节];
炭温[3];
int i=0;
对于(i=0;i<[数据长度];i++){
温度[0]=温度[1]=温度[2]=0;
(void)sprintf(temp,“%02x”,字节[i]);
[hex appendString:[NSString stringWithUTF8String:temp]];
}
NSLog(@“十六进制%@”,十六进制);

输出如下:333434453239444452D333946352D3439411372D414543312D453539423130443444413836这两个UUID不匹配。还有,你说的转换是什么意思?您需要一个字节数组,或者ASCII?UUID是什么形式的?你把这个喂什么?到目前为止,您尝试了什么?iOS6+还提供了
nsuid
,这稍微容易一些。您能否认真提供客观方面的示例?CFUUIDRef ref=cfuuiddcreatefromstring(NULL,(CFStringRef)@“xxxxxx-xxx-xx-xxxx”);CFUUIDBytes bytes=CFUUIDGetUUIDBytes(ref)。。。通过访问bytes.byte0、bytes.byte1等来执行所需操作。CFRelease(ref);老实说,如果您不能从API描述中解决这个问题,那么就不应该尝试处理原始字节。