[我了解到UUIDString
是一个唯一值,但是我不知道这些值是否仍然相同,在我运行应用程序时Xcode
上的值通常是更改的?
编辑:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Sauvegarde UUID
let userDefaults = NSUserDefaults.standardUserDefaults()
if userDefaults.objectForKey("ApplicationUniqueIdentifier") == nil {
let UUID = NSUUID().UUIDString
userDefaults.setObject(UUID, forKey: "ApplicationUniqueIdentifier")
userDefaults.synchronize()
}
print(String(NSUserDefaults.standardUserDefaults().objectForKey("ApplicationUniqueIdentifier")))
}
[看我的编辑,我找到了一个快速的解决方案,但是它打印:Optional(generatedid)
如何删除Optional()
并只获取id ?
UUID(通用唯一标识符),也称为GUID(全局唯一标识符)或IID(接口标识符)”是128位值。由NSUUID创建的UUID符合RFC 4122版本4,并且使用随机字节创建。
是,NSUUID对于每个新实例将具有不同的值。它用于生成唯一的标识符-如果需要,请创建一个新实例,然后将其值存储在某个地方以备后用。
您可以一次从UDID字符串创建获取供应商ID,并将其保存在钥匙串中,以后再使用。我将其实现如下:
NSString *Appname = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
NSString *strApplicationUUID = [SSKeychain passwordForService:Appname account:@""];
if (strApplicationUUID == nil)
{
strApplicationUUID = [[[UIDevice currentDevice]identifierForVendor] UUIDString];
[SSKeychain setPassword:strApplicationUUID forService:Appname account:@""];
}
return strApplicationUUID;