Iphone 如何将UUID存储为int

Iphone 如何将UUID存储为int,iphone,objective-c,xcode4,uuid,Iphone,Objective C,Xcode4,Uuid,我这里有些问题。。我使用以下代码在我的应用程序中生成uuid - (NSString *)GetUUID { CFUUIDRef theUUID = CFUUIDCreate(NULL); CFStringRef string = CFUUIDCreateString(NULL, theUUID); CFRelease(theUUID); return [(NSString *)string autorelease]; } 此代码返回一个NSString

我这里有些问题。。我使用以下代码在我的应用程序中生成uuid

    - (NSString *)GetUUID
{
    CFUUIDRef theUUID = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUUID);
    CFRelease(theUUID);
    return [(NSString *)string autorelease];
}

此代码返回一个
NSString
对象。现在我想将生成的
UUID
存储为
unsigned int
。有什么建议请告诉我怎么做。谢谢。

根据,UUID的长度为128位。您可以使用的最大int值是64位。因此,我认为不能将其存储在int中,因为根本没有空间。

使用
将UUID转换为字符串。uuistring

获取字符串的
.hash
属性

转换为int

int numericFormUUID=(int)uuistring.hash



注意:与往常一样,使用散列时可能会发生冲突。在这里,两个用户可能会得到相同的值,而UUID保证是唯一的

不能将
UUID
存储为
无符号int
。前者是128位宽,后者在iPhone上只有32位宽。它就是不合身。如果您能分享更多关于为什么要这样做的信息,我们可能会提供帮助。我想以数字形式存储uuid。类似于整数而不是字符串的东西。因为以字符串形式搜索和比较要花费太多时间。可能吗不,不可能。而且GUID已经是数字的-只是不要将其转换为字符串。啊哈好的。。所以我可以将GUID存储在任何类型中,或者我必须直接使用它。字符串在我的服务器上搜索和比较花费了太多时间。有可能适应其他类型吗我相信是的。您可以创建一个包含部分UUID的结构,然后编写比较函数来处理它们。不过,这完全取决于你想做什么。你的帖子被贴上了iPhone标签,但你说的是服务器。你是如何比较它们的?我在iphone上使用NSString生成UUID,并将它们保存在数据库中,然后将它们上传到服务器。如果我必须取回数据,我会从手机发送相关的UUID。这需要时间,所以我选择了int,但我仍然认为我会选择NSString。等等,请记住我刚才说的。我刚读了迈克尔的评论。如果您查看CFUUID的文档,它会说它存储为字节数组。因此,您实际上不需要创建自己的结构来表示它。我会说,然后在iPhone应用程序中使用CFUUID表示UUID,然后在数据库中找到一种将UUID存储为16字节的好方法。