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;