Ios6 用户密钥链的奇怪行为
在iOS上保存给用户的密钥链时,我试图调试一个奇怪的行为。我使用以下代码检查用户是否在钥匙链上:Ios6 用户密钥链的奇怪行为,ios6,keychain,Ios6,Keychain,在iOS上保存给用户的密钥链时,我试图调试一个奇怪的行为。我使用以下代码检查用户是否在钥匙链上: keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:KeyName accessGroup:nil]; if(keychainItem != NULL && [keychainItem objectForKey:(id)kSecValueData] != NULL && [[keychainIt
keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:KeyName accessGroup:nil];
if(keychainItem != NULL && [keychainItem objectForKey:(id)kSecValueData] != NULL && [[keychainItem objectForKey:(id)kSecValueData] length] > 0 &&
[keychainItem objectForKey:(id)kSecAttrAccount] != NULL && [[keychainItem objectForKey:(id)kSecAttrAccount] length] > 0) {
txtPassword.text = [keychainItem objectForKey:(id)kSecValueData];
txtLogin.text = [keychainItem objectForKey:(id)kSecAttrAccount];
// Call webservice to login
[self btnPressedLogin:nil];
}
[keychainItem setObject:KeyName forKey: (id)kSecAttrService];
[keychainItem setObject:txtLogin.text forKey:(id)kSecAttrAccount];
[keychainItem setObject:txtPassword.text forKey:(id)kSecValueData];
我使用以下方法保存到钥匙链:
keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:KeyName accessGroup:nil];
if(keychainItem != NULL && [keychainItem objectForKey:(id)kSecValueData] != NULL && [[keychainItem objectForKey:(id)kSecValueData] length] > 0 &&
[keychainItem objectForKey:(id)kSecAttrAccount] != NULL && [[keychainItem objectForKey:(id)kSecAttrAccount] length] > 0) {
txtPassword.text = [keychainItem objectForKey:(id)kSecValueData];
txtLogin.text = [keychainItem objectForKey:(id)kSecAttrAccount];
// Call webservice to login
[self btnPressedLogin:nil];
}
[keychainItem setObject:KeyName forKey: (id)kSecAttrService];
[keychainItem setObject:txtLogin.text forKey:(id)kSecAttrAccount];
[keychainItem setObject:txtPassword.text forKey:(id)kSecValueData];
当用户注销时,我只需执行以下操作:
[keychainItem resetKeychainItem];
我注意到它在所有情况下都有效,除了:
然而,就在那之后,当我重新启动模拟器时…它显示它找不到用户名和密码!这毫无意义…我发现了这个问题。这是一个记忆问题。当屏幕移动时,
keychainItem
是正在解除分配的属性。我必须重新初始化它,因为我是在viewDidLoad
函数中创建的,注销后没有调用该函数。案件结案