0

次のように、ユーザー名/パスワードをキーチェーンに保存しています。

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

私がやろうとしていることは悪い習慣と考えられていますか、それともこれを回避する簡単な方法はありますか?

4

1 に答える 1