この問題の解決策を探していましたが、このような問題に遭遇したのはインターネット上で私だけのようです。
Appleが提供するキーチェーンラッパークラスを使用して、ユーザーとパスワードを保存する必要があります。ユーザーの値を取り戻したいときは、次のように簡単です。
NSString *user = [keychain objectForKey:(id)kSecAttrAccount];
パスワードの取得は、ユーザー名と同じくらい簡単です。
NSString *pass = [keychain objectForKey:(id)kSecValueData];
しかし、その後、NSLog でそれらを印刷しようとすると、パスの後、コンソールには何も表示されません。例えば:
NSLog(@"user: <%@>, pass: <%@>, something after the pass", user, pass);
この NSLog の出力は次のとおりです。
user: <123456>, pass: <5433
[パスの長さ] を呼び出すと、パスの実際の長さよりも常に大きい数値が得られます (この例では、パスの長さが実際には 4 であると言えますが、この例では 10 です)。
何が起こっているのかわかりません。適切な解決策を見つけようとしている間に、この問題にパッチを当てる回避策を作成しました(すべての文字の整数値を調べ、数字、文字、およびいくつかの記号のみを許可します)。
前もって感謝します!