我正在使用以下内容在钥匙串(keychain)中存储值:
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier"suggest" accessGroup:nil];
[keychain setObject:[object valueForKey"token"] forKey__bridge id)(kSecValueData)];
[keychain setObject:[object valueForKey"usr_id"] forKey__bridge id)(kSecAttrAccount)];
这是我检索值的代码:
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier"suggest" accessGroup:nil];
NSLog(@"TOKEN:%@",[keychain objectForKey__bridge id)(kSecValueData)]);
NSLog(@"USER NAME:%@",[keychain objectForKey__bridge id)(kSecAttrAccount)]);
我还包含了安全框架。
我已经搜索了 stackoverflow 和 google,但无法在 NSLog 中获取值。
可能是什么原因?
编辑:
如果有人有其他信息,也可以向我提供其他信息,以便使用钥匙串(keychain)?
Best Answer-推荐答案 strong>
我使用答案是因为评论有限...
我在一个新项目中尝试了以下代码,下载了 KeychainItemWrapper 并链接了 Security.framework
- (BOOL)applicationUIApplication *)application didFinishLaunchingWithOptionsNSDictionary *)launchOptions
{
{
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier"suggest" accessGroup:nil];
[keychain setObject"aaaa" forKey__bridge id)(kSecValueData)];
[keychain setObject"bbbb" forKey__bridge id)(kSecAttrAccount)];
NSLog(@"TOKEN:%@",[keychain objectForKey__bridge id)(kSecValueData)]);
NSLog(@"USER NAME:%@",[keychain objectForKey__bridge id)(kSecAttrAccount)]);
}
{
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier"suggest" accessGroup:nil];
NSLog(@"TOKEN:%@",[keychain objectForKey:(__bridge id)(kSecValueData)]);
NSLog(@"USER NAME:%@",[keychain objectForKey:(__bridge id)(kSecAttrAccount)]);
}
// Override point for customization after application launch.
return YES;
}
一切都很完美。我想您需要提供更多代码才能找到答案。这是我的日志:
2013-11-19 17:11:08.378 test[3430:a0b] TOKEN:aaaa
2013-11-19 17:11:08.379 test[3430:a0b] USER NAME:bbbb
2013-11-19 17:11:08.380 test[3430:a0b] TOKEN:aaaa
2013-11-19 17:11:08.381 test[3430:a0b] USER NAME:bbbb
关于ios - 无法在钥匙串(keychain)中正确存储值,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/19978563/
|