NSUUID()。UUIDString值在Xcode Simulator上更改

问题描述 投票:1回答:2

[我了解到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 ?

ios swift uuid
2个回答
2
投票

UUID(通用唯一标识符),也称为GUID(全局唯一标识符)或IID(接口标识符)”是128位值。由NSUUID创建的UUID符合RFC 4122版本4,并且使用随机字节创建。

是,NSUUID对于每个新实例将具有不同的值。它用于生成唯一的标识符-如果需要,请创建一个新实例,然后将其值存储在某个地方以备后用。


0
投票

您可以一次从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;
© www.soinside.com 2019 - 2024. All rights reserved.