CFUUID创建UUID不断变化

时间:2012-03-21 09:45:12

标签: ios uuid

我是初学iPhone应用程序开发人员,我试图通过IBAction按钮在标签上显示iPhone或App唯一标识符。我研究了一下,知道有些代码已被弃用,而是使用了CFUUID。下面的代码是我使用的。但是,每次触摸IBAction按钮时,UUID都会发生变化。我做错了什么?

CFUUIDRef udid = CFUUIDCreate(NULL);

NSString *udidString = (NSString *) CFUUIDCreateString(NULL, udid);

uuid.text= udidString;  

3 个答案:

答案 0 :(得分:8)

我认为您误解了CFUUIDCreate()的目的,请阅读您理解的documentation

我想API正在正确地服务于它的目的,即创建通用唯一标识符意味着每次调用它时它将随机返回唯一标识符。

答案 1 :(得分:5)

您可以使用

[[UIDevice currentDevice] uniqueIdentifier]

但是,此方法已折旧。为了获得每个设备的唯一标识符,您仍然可以使用CFUUIDCreateString并将输出保存为用户默认值。每次应用运行时加载此值。如果应用程序被删除然后重新安装,则此值将不同。

如果您确实需要跨应用安装的唯一标识符,则可以使用网络MAC地址。

答案 2 :(得分:4)

如上所述,CFUUIDCreate旨在每次运行时创建不同的UUID。您可以创建一个,并根据需要将其存储在您的应用程序中,或者您可以尝试https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5之类的东西 - 基本上,它在UIDevice上提供uniqueGlobalDeviceIdentifier函数,使用MAC地址的MD5哈希作为其基础。

[[UIDevice currentDevice] uniqueGlobalDeviceIdentifier]