我可以将CFUUID转换为30个字符或更少吗?

时间:2012-06-22 05:13:54

标签: ios objective-c guid

我需要为我的iOS用户创建一个唯一的标识符。不幸的是,它将保存到的数据库的设置长度为30个字符,CFUUID为36(如果删除破折号则为32个。)

有没有办法让它成为一个较小的字符串?我认为CFUUID是十六进制的,那么可以将它转换为完整的ASCII吗?

2 个答案:

答案 0 :(得分:2)

Jeff Atwood在Equipping our ASCII Armor中介绍了这一点。 Base64编码的GUID导致22个字节(24个包含==)个字节。您可以根据帖子使用其他ascii格式,但Base64可能是数据库服务器中最友好的格式。

答案 1 :(得分:0)

首先,使用类似https://stackoverflow.com/a/7318062/382374的内容将十六进制字符串转换为NSData(请务必删除“ - ”)。然后使用http://www.imthi.com/blog/programming/iphone-sdk-base64-encode-decode.php之类的东西将NSData转换为base64。