我想知道当用户没有在 iOS 7 上打开 iCloud 钥匙串支持(iOS 默认?)然后运行以下代码,然后打开 iCloud 钥匙串支持时会发生什么。
KeychainItemWrapper* keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"com.joseandro.UUID" accessGroup:nil];
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
NSString* UUID = [(NSString *)string autorelease];
[keychain setObject:@"UNIQUE_IDS_SERVICE" forKey:kSecAttrService];
[keychain setObject:@"DeviceUUID" forKey:kSecAttrAccount];
[keychain setObject:UUID forKey:kSecValueData];
[keychain setObject:kSecAttrAccessibleAlwaysThisDeviceOnly forKey:kSecAttrAccessible];
[keychain release];
keychain = nil;
将使用先前存储的“DeviceUUID”值数据,或者钥匙串被完全擦除,因此返回的值将为空(使用以下代码)并且我会丢失在这一切发生之前存储的内容?
KeychainItemWrapper* keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"com.joseandro.UUID" accessGroup:nil];
NSString* UUID = [keychain objectForKey:(kSecValueData)];
return UUID;