Я использую keychainWrapper. Связка ключей в ios хранится с использованием предопределенной константы, а именно:
kSecAttrAccessGroup
kSecAttrCreationDate
kSecAttrModificationDate
kSecAttrDescription
kSecAttrComment
kSecAttrCreator
kSecAttrType
kSecAttrLabel
kSecAttrIsInvisible
kSecAttrIsNegative
kSecAttrAccount
kSecAttrService
kSecAttrGeneric
Означает ли это, что у меня ограничено количество связок для ключей, которые я могу использовать? Однажды я использовал пользовательский ключ, и он не работает:
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:[[NSBundle mainBundle] bundleIdentifier] accessGroup:nil];
[keychain setObject:[[[UIDevice currentDevice] identifierForVendor] UUIDString] forKey:@"myUDID"];
Но это делает:
[keychain setObject:[[[UIDevice currentDevice] identifierForVendor] UUIDString] forKey:(__bridge NSString *)kSecValueData];
Итак, можно ли как-нибудь сохранить много брелоков? Могу ли я инициализировать свою связку ключей с другим идентификатором, чтобы сохранить больше связок ключей? Как это:
anotherKeychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"TestUDID" accessGroup:nil];
[anotherKeychain setObject:udid forKey:(__bridge id)(kSecAttrAccount)];