0

我想知道当用户没有在 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;
4

1 回答 1

0

启用 iCloud 钥匙串支持的时间无关紧要,钥匙在存储后始终存在。

当 iCloud 没有被激活并且操作系统被删除并重新安装时,我无法验证行为。

于 2013-10-30T04:34:25.463 回答