我想创建UUID,下面有代码可以创建UUID,如何在iOS7中创建多个供应商相同ID的UDID?
+ (NSString*) stringWithNewUUID
{
CFUUIDRef uuidObj = CFUUIDCreate(nil);
NSString *newUUID = (NSString*)CFUUIDCreateString(nil, uuidObj);
CFRelease(uuidObj);
return newUUID;
}
答案 0 :(得分:6)
CFUUIDCreate
函数生成版本4 UUID,完全取自伪随机数生成器。此类UUID中没有嵌入时间戳或MAC地址。 (这指的是很少使用的版本1的味道。)这些几乎适用于所有应用程序。
答案 1 :(得分:5)
此方法在iOS 6及更高版本中返回随机UUID
[[UIDevice currentDevice]identifierForVendor]
答案 2 :(得分:4)
我创建了一个供应商ID,然后使用钥匙串保存它,我将在下次使用KeychainWrapper keychainStringFromMatchingIdentifier:...
保留
答案 3 :(得分:2)
上面代码生成的UUID中没有可恢复的时间戳。它只是一个字符串,如下所示:E1D87006-7CD0-4E28-9768-624DA92F75D6
答案 4 :(得分:0)
我按照Sandeep Khade的回答,使用PDKeychainBindings制作了以下代码。它与使用NSUserDefaults相同,但它将标识符保存在钥匙串中,即使删除了应用程序也可以保存数据。
+ (NSString *)uniqueVendor {
PDKeychainBindings *keychain = [PDKeychainBindings sharedKeychainBindings];
NSString *uniqueIdentifier = [keychain objectForKey:kKeyVendor];
if (!uniqueIdentifier || !uniqueIdentifier.length) {
NSUUID *udid = [[UIDevice currentDevice] identifierForVendor];
uniqueIdentifier = [udid UUIDString];
[keychain setObject:uniqueIdentifier forKey:kKeyVendor];
}
return uniqueIdentifier;
}