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