0

我想在我的 iOS 应用程序中实现 UUID v1。我知道它由 http://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_.28MAC_address.29中描述的 Mac 地址和时间戳组成

这个 V1 是否有任何基于 CFUUID 函数的 Objective-C 实现?

我已经有了mac地址和时间戳。

Wikipedia 上的 UUID v1 描述:“UUID 的原始(版本 1)生成方案是将 UUID 版本与生成 UUID 的计算机的 MAC 地址以及自采用以来的 100 纳秒间隔数连接起来。西方的公历"

它也在http://www.ietf.org/rfc/rfc4122.txt中指定,但似乎需要时间来实现它。

我找到了这个链接: http: //www.famkruithof.net/guid-uuid-timebased.html对创建 v1 UUID 的步骤有一个简单的解释。在我自己实施之前,是否有任何现有的实施?

4

2 回答 2

0

我认为使用框架函数是常见的行为。那就是使用 CFUUID。例如:

+(NSString*)get {
    NSString *deviceID = [[NSUserDefaults standardUserDefaults] objectForKey:@"DeviceID"];
    if (!deviceID) {
        CFUUIDRef theUUID = CFUUIDCreate(NULL);
        CFStringRef string = CFUUIDCreateString(NULL, theUUID);
        CFRelease(theUUID);
        deviceID = (NSString*)string;
        [[NSUserDefaults standardUserDefaults] setValue:deviceID forKey:@"DeviceID"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }

    return deviceID;
}
于 2013-06-07T12:03:43.613 回答
0

请试试这个。可能对你有帮助

 +(NSString*) Create_UDID
 {
      CFUUIDRef theUUID = CFUUIDCreate(NULL);
      CFStringRef string = CFUUIDCreateString(NULL, theUUID);
      CFRelease(theUUID);

      NSString* strString = [NSString stringWithFormat:@"%@", string];
      NSString *strValue = [strString stringByReplacingOccurrencesOfString:@"-"withString:@""];

    if (strValue == nil) {
         strValue = @"";
     }

      return strValue;
 }
于 2016-05-06T09:33:58.880 回答