我将我的用户电子邮件ID,密码和身份验证令牌保存在钥匙串中。有时,密码文本会丢弃一个字符,但其他人则不会。我无法弄清楚导致此问题的原因。最初我有这些保存在NSUserDefaults中并且发生了同样的事情。我认为转移到钥匙串可以解决这个问题。但事实并非如此。我浪费了几天试图解决这个问题。任何帮助都会非常感激。
这就是我要保存的方式:
[keychainItem setObject:userEmailId forKey:(__bridge id)kSecAttrAccount];
[keychainItem setObject:userPassword forKey:(__bridge id)kSecValueData];
并检索密码。
NSData *password =[keychainItem objectForKey:(__bridge id)(kSecValueData)];
userPassword = [[NSString alloc] initWithData:password encoding:NSUTF8StringEncoding];
NSLog(@"Password from keychain = %@ and textfield = %@",userPassword,txtPassword.text);
userEmailId = [keychainItem objectForKey:(__bridge id)kSecAttrAccount];
永远不会在其他地方访问或更改userPassword或txtPassword.text。