gpt4 book ai didi

ios - 将 GUID 转换为 NSString - Objective C

转载 作者:行者123 更新时间:2023-11-29 12:43:59 31 4
gpt4 key购买 nike

我定义了一个 GUID 结构如下

typedef struct _GUID {
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[ 8 ];

} GUID;

我正在尝试将其转换为 NSString。但是,我得到了前三个 (long, short, short) 的反向值。这可能是由于 Big-endian

例子:

 GUID testGUID = { 0x865f82d0, 0x3303, 0x403d, { 0xbf, 0xcd, 0xeb, 0xb2, 0xde, 0xd9, 0xa0, 0x69 } };
NSUUID *uuid = [[NSUUID alloc] initWithUUIDBytes:(const unsigned char*)&testGUID];
NSString *uuidString = [uuid UUIDString];
NSLog(@"%@", uuidString);

输出:D0825F86-0333-3D40-BFCD-EBB2DED9A069

预期:865F82D0-3303-403D-BFCD-EBB2DED9A069

让我知道有没有办法纠正这个问题。非常感谢对此的任何帮助。

最佳答案

@borrrden 评论解决了这个问题。

这是解决方案。

GUID testGUID = { 0x865f82d0, 0x3303, 0x403d, { 0xbf, 0xcd, 0xeb, 0xb2, 0xde, 0xd9, 0xa0, 0x69 } };

testGUID.Data1 = NTOHL(testGUID.Data1);
testGUID.Data2 = NTOHS(testGUID.Data2);
testGUID.Data3 = NTOHS(testGUID.Data3);

NSUUID *uuid = [[NSUUID alloc] initWithUUIDBytes:(const unsigned char*)&testGUID];
NSString *uuidString = [uuid UUIDString];
NSLog(@"%@", uuidString)

关于ios - 将 GUID 转换为 NSString - Objective C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24117457/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com