次のように、ユーザー名/パスワードをキーチェーンに保存しています。
KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"YourAppLogin" accessGroup:nil];
[keychainItem setObject:usernameField.text forKey:(__bridge id)(kSecAttrAccount)];
[keychainItem setObject:passwordField.text forKey:(__bridge id)(kSecValueData)];
次に、ユーザー名のパスワードを取得します。
NSString *username = [keychainItem objectForKey:(__bridge id)(kSecAttrAccount)];
NSString *password = [keychainItem objectForKey:(__bridge id)(kSecValueData)];
次に、ユーザーがチェックした場合、ユーザー名とパスワードのログインボックスにそれらを自動的に配置したい:
if ([_rememberMeSwitch isOn]) {
usernameField.text = username;
}
if ([_rememberMeSwitch isOn]) {
passwordField.text = password;
}
これはユーザー名に対しては正常に機能しますが、パスワードが nscfdata としてキーチェーンに保存されているようです。
[__NSCFData _encodingCantBeStoredInEightBitCFString]: unrecognized selector sent to instance
私がやろうとしていることは悪い習慣と考えられていますか、それともこれを回避する簡単な方法はありますか?