0

目前,我在 iOS Apps 中制作了两个应用程序。

这是我的源代码。


* TestProject 源代码 * --> 写入钥匙串

KeychainItemWrapper *idKeyChain = [[KeychainItemWrapper alloc] initWithIdentifier:@"TestProject" accessGroup:@"TestProject.com.test"];

[idKeyChain.keychainItemData setObject:@"testValue" forKey:(id)kSecValueData];

[idKeyChain release];

TestKeyChain 源码-->加载到钥匙串

KeychainItemWrapper *idKeyChain = [[KeychainItemWrapper alloc] initWithIdentifier:@"TestProject" accessGroup:@"TestProject.com.test"];

NSString *username = [idKeyChain objectForKey:kSecAttrAccount];

[idKeyChain release];

NSLog(@"password : %@", username);

我猜想打印屏幕什么用户名值。 <password : testValue>

但是日志的打印.. <password : >

目前,我只在这个问题上浪费了三个小时.. 怎么了?

4

1 回答 1

0

您的设置代码应如下所示:

keychainItemWrapper = [[KeychainItemWrapper alloc] initWithIdentifier:KEYCHAIN_ID accessGroup:nil];
[keychainItemWrapper setObject:username forKey:kSecAttrAccount];
[keychainItemWrapper setObject:password forKey:kSecValueData];

您的获取代码应如下所示:

keychainItemWrapper = [[KeychainItemWrapper alloc] initWithIdentifier:KEYCHAIN_ID accessGroup:nil];
NSString *username = [keychainItemWrapper objectForKey:kSecAttrAccount];
NSString *password = [keychainItemWrapper objectForKey:kSecValueData];

如果您想根据 Apple 文档在应用程序之间共享钥匙串数据,请添加适当的访问组字符串。

祝你好运!

于 2012-07-30T07:30:53.333 回答