Ios nsuid().UUIDString值在Xcode模拟器上更改

Ios nsuid().UUIDString值在Xcode模拟器上更改,ios,swift,uuid,Ios,Swift,Uuid,我了解到uuistring是一个唯一的值,但我不知道在Xcode上,值是否仍然相同,当我运行应用程序时,值会改变,这是正常的吗 编辑: 查看我的编辑我找到了一个快速解决方案,但它打印:Optional(generateId)如何删除Optional()并只获取id? UUID(通用唯一标识符)也称为GUID(全局唯一标识符)或IID(接口标识符),是128位的值。由NSUID创建的UUID符合RFC 4122版本4,并使用随机字节创建 是的,NSUID对于每个新实例都有不同的值。它用于生成唯一标

我了解到
uuistring
是一个唯一的值,但我不知道在
Xcode
上,值是否仍然相同,当我运行应用程序时,值会改变,这是正常的吗

编辑:


查看我的编辑我找到了一个快速解决方案,但它打印:
Optional(generateId)
如何删除
Optional()
并只获取
id?

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


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

您可以从UDID字符串创建一次get vendor ID,并将其保存在key chain中,以后再使用。 我的实施如下:

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;

查看我的编辑我找到了一个swift解决方案,但它打印:
可选(generateId)
如何删除
可选()
并只获取id?您可以使用感叹号mar(!)获取值,而不必使用可选字符串。但是,当您从设备卸载应用程序时,用户默认设置将被清除。查看我的编辑我找到了一个swift解决方案,但它打印:
可选(generateId)
如何删除
可选()
并仅获取id?使用!如果posibleEthere是couple-ways,则在变量名或post-code之后,如果您确定该值不是nil,则只需使用
如上所述(即
optionalValue!
),但请注意,它将在
nil
时崩溃。if值可以是
nil
使用
if let
if let value=optionalValue{/*做点什么*/}
或类似的
let value=optionalValue??“defaultValue”
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;