如何将 UUID 存储为 int
我这里遇到一些问题。我正在使用以下代码在我的应用程序中生成 UUID。
- (NSString *)GetUUID {
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [(NSString *)string autorelease];
}
此代码返回一个 NSString
对象。现在我想将生成的 UUID
存储为 unsigned int
。关于我如何在这里做到这一点有什么建议吗?
I'm having some issues here. I am using the following code to generate the UUID in my application.
- (NSString *)GetUUID {
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [(NSString *)string autorelease];
}
This code returns an NSString
object back. Now I want to store the generated UUID
as unsigned int
. Any suggestions on how can I do it here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
根据 维基百科页面,UUID 的长度为 128 位。您可以使用的最大 int 值是 64 位。因此,我想说你不能将它存储在 int 中,因为根本没有空间。
According to the Wikipedia page, UUIDs are 128 bits long. The largest int value you'll be able to work with is 64 bits. Therefore, I'd says you can't store it in an int because there simply isn't room.
使用
.UUIDString
将 UUID 转换为字符串获取字符串的
.hash
属性。转换为 int。
int numericFormUUID = (int)UUIDString.hash;
注意:与往常一样,哈希法可能会发生冲突。两个用户最终可能会得到相同的值,而 UUID 则保证是唯一的。
Convert UUID to String using
.UUIDString
Take string's
.hash
property.Cast to int.
int numericFormUUID = (int)UUIDString.hash;
Note: collision is possible, as always, with hashing. Two users could end up with the same value here, whereas UUID is guaranteed unique.
有一个新的
.hashValue
属性。There's a new
.hashValue
property.