Я хочу сохранить 128-битный UUID в 16-байтовой строке, которая будет храниться в Core Data как атрибут индекса моего ManagedObject, чтобы обеспечить эффективность вставки и выбора.
Есть ли способ сохранить 128-битный UUID в 16-байтовой строке ASCII? Если есть, как преобразовать между 32-байтовой строкой UUID и 16-байтовой строкой ASCII?
Я попытался сохранить CFUUIDBytes в строку, используя приведенный ниже код, но значение изменилось после создания строки. (если любое значение байта> 127, его значение изменяется в сгенерированной строке)
CFUUIDRef uuidRef = CFUUIDCreate(kCFAllocatorDefault);
CFUUIDBytes uuidBytes = CFUUIDGetUUIDBytes(uuidRef);
NSString *utf8String = [NSString stringWithFormat:@"%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",
uuidBytes.byte0, uuidBytes.byte1, uuidBytes.byte2,
uuidBytes.byte3, uuidBytes.byte4, uuidBytes.byte5,
uuidBytes.byte6, uuidBytes.byte7, uuidBytes.byte8,
uuidBytes.byte9, uuidBytes.byte10, uuidBytes.byte11,
uuidBytes.byte12, uuidBytes.byte13, uuidBytes.byte14,
uuidBytes.byte15];