我想在我的iOS App中实现UUID v1。 我知道它由Mac地址和时间戳组成,如中所述 http://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_.28MAC_address.29
基于CFUUID功能,这个V1有没有Objective-c实现?
我已经有了mac地址和时间戳。
维基百科上的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的步骤有一个简单的解释。在我实现它之前,是否有任何现有的实现?
答案 0 :(得分: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;
}
答案 1 :(得分: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;
}