我正在使用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)];
答案 0 :(得分:0)
您可以拥有任意数量的钥匙串项目(您所指的钥匙链实际上是钥匙串项目)。每个项目仅定义了有限数量的属性 - 您已列出这些属性。标识符是您喜欢的任何字符串,数据是您要针对该项目存储的值。
您还可以使用许多框架来简化操作 - http://cocoapods.org/?q=Keychain