将iPhone唯一标识符转换为整数

时间:2011-09-30 17:52:12

标签: iphone ios cocoa-touch uuid uniqueidentifier

我制作了一个Web服务,它获取一个整数作为Phone的唯一标识符。后来,我意识到iPhone UID是这种格式的NSstring:5DE31FA12-XXXXX-XXXXX-XXXXXXX。所以我想将此值转换为整数。

以下是我以NSString格式获取UID的方式。

CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
NSString *theUID = (NSString *)string;

如何将NSString * theUID转换为整数值,以便将其发送到网络服务?

编辑 :正如CocoaFu正确提到的那样,将该值放入int中是不可能的。我能以某种方式将其转换为NSString,其格式为“dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd现在无法更改网络服务。

2 个答案:

答案 0 :(得分:2)

最大整数是8个字节或64位。您显示的UUID有26个十六进制字符,即104位。它只是不适合整数。使用字符串。

CFUUIDCreate返回一个包含32个十六进制字符的字符串,即128位或16字节。忽略' - '字符,它们只是为了人类的可读性。这是一个例子 CFUUIDCreate: BDFC3FE6-3A5E-48C0-B18D-E42B8E275428

答案 1 :(得分:1)

UDID不适合int。您列出的格式是模拟器为您提供的格式。设备UDID是40个字符长的字母数字。