私のアプリは(ほとんどの場合と同様に)多くのリモートサービスを利用する予定です...したがって、ユーザーが自分自身を認証するときは、ユーザー名とパスワード(または何らかのフラグ)を保存して、全体を認証する必要がないようにする必要がありますアプリ。
このユーザーデータを保存するのに最適/最速/最も簡単な場所はどこですか?
NSUserDefaultsを使用してユーザー名とサーバーのURLを保存することもできますが、パスワードを保存する場合は、キーチェーンサービスが最適です。これはCベースのセキュリティフレームワークの一部であり、Objective-CAPIを提供する優れたラッパークラスSFHFKeychainUtilsがあります。
保存する:
NSString *username = @"myname";
NSString *password = @"mypassword";
NSURL *serverURL = [NSURL URLWithString:@"http://www.google.com"];
[SFHFKeychainUtils storeUsername:username andPassword:password forServiceName:[serverURL absoluteString] updateExisting:YES error:&error]
復元するには:
NSString *passwordFromKeychain = [SFHFKeychainUtils getPasswordForUsername:username andServiceName:[serverURL absoluteString] error:&error];
NSUserDefaults
このように保存します:
[[NSUserDefaults standardUserDefaults] setObject:username forKey:@"username"];
[[NSUserDefaults standardUserDefaults] setObject:password forKey:@"password"];
[[NSUserDefaults standardUserDefaults] synchronize];
このようにフェッチします。
NSString *username = [[NSUserDefaults standardUserDefaults] stringForKey:@"username"];
NSString *password = [[NSUserDefaults standardUserDefaults] stringForKey:@"password"];
安全でないファイル(ユーザーのデフォルト)に安全なデータを保存することは、通常は良い考えではありません。機密性の高いログイン情報などを暗号化するキーチェーンサービスを調べてください。