NSUUID()。UUIDString值在Xcode模拟器上更改

时间:2016-02-17 09:56:05

标签: ios swift uuid

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

2 个答案:

答案 0 :(得分:2)

  

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

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

答案 1 :(得分: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;