Как преобразовать UUID в 16-байтовый массив UInt8 в MacOS Objective C / C ++ - PullRequest
1 голос
/ 12 апреля 2019

Я могу получить строку UUID, используя следующий код ..

CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);

Или я могу получить байты, используя код ниже

CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFUUIDBytes bytes = CFUUIDGetUUIDBytes(theUUID);

Но я бы хотел сделать массив из UInt8, и, поскольку UUID равен 16 байтам, выходной массив должен быть в 16 байтах.

1 Ответ

1 голос
/ 12 апреля 2019

Изучив CFUUIDBytes typedef , вы можете увидеть, как получить доступ к каждому байту:

CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFUUIDBytes bytes = CFUUIDGetUUIDBytes(theUUID);

UInt8 rawData[16];
rawData[0] = bytes.byte0;
rawData[1] = bytes.byte1;
...
rawData[15] = bytes.byte15;
...