Сколько keyChain я могу хранить в iOS?

Я использую 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)];

Как сохранить строку в KeyChain, iOS?


person Eddie    schedule 13.10.2015    source источник
comment
У вас может быть любое количество элементов цепочки для ключей (то, что вы называете цепочками для ключей, на самом деле является элементами цепочки для ключей). Для каждого элемента определено только ограниченное количество атрибутов — вы их перечислили. Идентификатор — это то, что вам нравится, а данные — это значение, которое вы хотите сохранить для этого элемента.   -  person Paulw11    schedule 13.10.2015
comment
Существует также ряд фреймворков, которые можно использовать для упрощения: cocoapods.org/?q=KeychAin   -  person Paulw11    schedule 13.10.2015
comment
@ Paulw11 благодарит Пола за указание на это. Просто подтвердите, вы говорите, что я могу иметь столько keychainsItem, сколько захочу, если их идентификатор в методе инициализации будет другим, верно?   -  person Eddie    schedule 13.10.2015
comment
@ Paulw11 Ты прав. Я только что проверил это, и это работает! Вы должны были опубликовать это как свой ответ, чтобы я мог принять его: p   -  person Eddie    schedule 14.10.2015


Ответы (1)


У вас может быть любое количество элементов цепочки для ключей (то, что вы называете цепочками для ключей, на самом деле является элементами цепочки для ключей). Для каждого элемента определено только ограниченное количество атрибутов — вы их перечислили. Идентификатор — это любая строка, которая вам нравится, а данные — это значение, которое вы хотите сохранить для этого элемента.

Существует также ряд фреймворков, которые можно использовать для упрощения — http://cocoapods.org/?q=Keychain

person Paulw11    schedule 14.10.2015