Я использую keychainWrapper. Брелка в ИОС хранится с использованием заранее заданная константой, таково:Сколько keyChain можно хранить в 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)];
How to store a string in KeyChain , iOS?
Вы можете иметь любое количество элементов брелки (то, что вы имеете в виду, как ключевые цепи фактически брелка элементы). Каждый элемент имеет ограниченное количество атрибутов - вы указали их. Идентификатор - это то, что вам нравится, и данные - это значение, которое вы хотите сохранить против этого элемента. – Paulw11
Существует также ряд фреймворков, которые вы можете использовать для упрощения вещей - https://cocoapods.org/?q=KeychAin – Paulw11
@ Paulw11 thanks Пол указал на это. Просто подтвердите это, вы говорите, что я могу иметь столько ключей, как я хочу, так как их идентификатор в методе init будет другим, не так ли? – Eddie