我希望能够在 iPhone 和 iPad 上创建 GUID/UUID。

目的是为了能够创建快捷键都是唯一的分布式数据。是否有办法用 iOS SDK 做到这一点?

2009-01-09 05:45:16
问题评论:

还有一篇文章关于如何确保永远不会丢失该生成的 UUID,即使对于 iOS 5 或更高版本使用钥匙链。...blog.onliquid.com/

回答:

[[UIDevice currentDevice] uniqueIdentifier]

返回您的 iPhone 的唯一 ID。

编辑︰ -[UIDevice uniqueIdentifier]现已被否决,应用程序将被拒绝使用它的应用程序存储区中。下面的方法现在是首选的方法。

如果您需要创建多个 UUID,只需使用此方法 (弧)︰

+ (NSString *)GetUUID
{
  CFUUIDRef theUUID = CFUUIDCreate(NULL);
  CFStringRef string = CFUUIDCreateString(NULL, theUUID);
  CFRelease(theUUID);
  return (__bridge NSString *)string;
}

编辑︰ 1 月,29 2014年︰ 如果您面向的 iOS 6 或更高版本,现在可以使用更简单的方法︰

NSString *UUID = [[NSUUID UUID] UUIDString];

[[UIDevice currentDevice] 唯一标识符] 已弃用从 iOS 5 起,苹果现在已拒绝使用它 (截至 2012 年 3 月) 的应用程序。其余是响应的仍然是响应的准确的。

至今已有解决这个问题一段时间,我很肯定的原始问题不是关于设备的唯一标识符,但关于只东西中获取有用的通用唯一标识符。

使此弧符合必须强制转换的字符串对象和删除 autorelease 调用。换句话说添加强制转换︰ NSString * 字符串 (__bridge_transfer NSString *) = CFUUIDCreateString (NULL,theUUID);

从 iOS 6 起,您可以使用︰ NSString * UUID = [[NSUUID UUID] UUIDString];

如果我使用 [[NSUUID UUID] UUIDString];在 iOS7 及以上,将不会被苹果拒绝我的应用程序?

下面是我使用,简单的代码符合弧。

+(NSString *)getUUID
{
    CFUUIDRef newUniqueId = CFUUIDCreate(kCFAllocatorDefault);
    NSString * uuidString = (__bridge_transfer NSString*)CFUUIDCreateString(kCFAllocatorDefault, newUniqueId);
    CFRelease(newUniqueId);

    return uuidString;
}

诚实地这应该是接受的回答了原始问题要求为 GUID 或 UUID 生成器,并且每个人都做出了如何获取手机的 UDID。通用唯一标识符 (UUID) 和唯一设备标识符 (UDID) 不是同样的事情。

在 iOS 6 您可以轻松地使用︰

NSUUID  *UUID = [NSUUID UUID];
NSString* stringUUID = [UUID UUIDString];

苹果的文档的详细信息

到目前为止,这是最简单的解决方案。如果您没有支持在 iOS 6 之前,使用此项。我使用的核心数据生成永久性标识,但这是好得多。+ 1

为此十分完美,谢谢您 !这是我一天的 + 1 答案:)

每次我在模拟器中运行应用程序更改它。

@GajendraKChauhan 不是整体点?!?!?!?!?? !

检查我发现CFUUID对象的苹果开发者文档是在 iPhone OS 2.0 及更高版本。

这正是我的内容之后,感谢

最简单的方法是使用NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]请参阅NSProcessInfo类引用。

该属性返回进程的唯一标识符。它有没有类似于一个 GUID。从文档:"ID 包含主机名、 进程 ID 和一个时间戳,这样可以确保该 ID 是唯一的网络"

您可能是正确的。它是务实的单行式命令,并且可能不是以 CFUUID 为无懈可击。需要更大的 rigour 的人应该到 CoreFoundation 下拉列表。

请输入您的翻译

How to create a GUID/UUID using the iPhone SDK

确认取消