-2

ユーザー名とパスワードを NSUserDefault に保存する必要があります。IBに丸い長方形のボタンを配置する予定です。これを押すと、ユーザー名とパスワードが NSUserDefault に保存されるため、ユーザーがアプリケーションを強制終了し、しばらくしてから再度ログインしようとしたときに、ログインの詳細を再度入力する必要がなくなります。どんな助けでも大歓迎です。

よろしくお願いします、

パソコン

4

7 に答える 7

7

ユーザー名とパスワードを保存するにKeychainは、データを暗号化された形式で保存し、プレーンテキストとして保存するNSUserDefaultため、セキュリティの面よりも安全であるため、個人的に使用することをお勧めします. それでも使いたい場合はこちらKeychainNSUserDefaultNSUserDefault

節約のために

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

// saving an NSString
[prefs setObject:txtUsername.text forKey:@"userName"];
[prefs setObject:txtPassword.text forKey:@"password"];

 [prefs synchronize];

検索用

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

// getting an NSString
NSString *savedUsername = [prefs stringForKey:@"userName"];
NSString *savedPassword = [prefs stringForKey:@"password"];
于 2012-09-06T10:56:40.980 に答える
4

平文のパスワードは、たとえ重要でなくても、ユーザーのデフォルトに保存しないでください。

キーチェーン サービスを使用します。Generic Keychain Sampleはサンプルの KeychainWrapper クラスを提供します。これは、uses とまったく同じsetObject:forKey:インターフェイスでキーチェーンにデータを読み書きするために使用できますNSUserDefaults

于 2012-09-06T10:57:09.177 に答える
3

保存する:

[[NSUserDefaults standardUserDefaults] setValue:_Username forKey:@"Username"];
[[NSUserDefaults standardUserDefaults] setValue:_password forKey:@"password"];
[[NSUserDefaults standardUserDefaults] synchronize];

読むには:

NSString * _UserName = [[NSUserDefaults standardUserDefaults] stringForKey:@"Username"];
NSString * _password = [[NSUserDefaults standardUserDefaults] stringForKey:@"password"];
于 2012-09-06T10:50:48.630 に答える
2

まず、パスワードをNSUserDefaultsに保存しません。むしろキーホルダーを使いたいです。

これは、NSUserDefaultsにユーザー名を保存する方法です。

NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
[standardUserDefaults setObject:myString forKey:@"username"];

NSString* username = [standardUserDefaults objectForKey:@"username"];

一方、キーチェーンを使用する簡単な方法は、SSKeychainSamSoffesによるクラスを使用することです。この場合、あなたはただ言うでしょう:

NSString* password = [SSKeychain passwordForService:@"YOUSERVICENAMEHERE" account:username];

[SSKeychain setPassword:password forService:@"YOUSERVICENAMEHERE" account:username];
于 2012-09-06T10:59:33.720 に答える
1

次のように資格情報を保存できます。

-(void)saveToUserDefaults:(NSString*)stringUserName pswd:(NSString*)strPassword
{
    NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
    if (standardUserDefaults) {
        [standardUserDefaults setObject:stringUserName forKey:@"UserName"];
        [standardUserDefaults setObject:strPassword forKey:@"Password"];
        [standardUserDefaults synchronize];
    }
}

そして、次のように取得できます。

-(NSArray*)retrieveFromUserDefaults
{
    NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
    if (standardUserDefaults) {
        NSString *userName = (NSString*)[standardUserDefaults objectForKey:@"UserName"];
        NSString *password = (NSString*)[standardUserDefaults objectForKey:@"Password"];
    }
    NSArray* credentials = [NSArray arrayWithObjects:userName, password, nil];
    return credentials;
}
于 2012-09-06T10:54:08.303 に答える
0

NSUserDefaults フィールドを設定できません

リンクからコードを投稿して、上記の投稿が将来削除または削除された場合でも、回答が引き続きコミュニティに役立つことを保証します。

コード:

このコードを試すことができます。私はそれがあなたのために働くと確信しています。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *uid=@"1";
[defaults setObject:uid forKey:@"init_val"];
[defaults synchronize];

データを取得するには、次のコードを使用する必要があります。

NSString *initVal=[[NSUserDefaults standardUserDefaults] valueForKey:@"init_val"];

また

NSString *initVal=[[NSUserDefaults standardUserDefaults] objectForKey:@"init_val"];

編集:

それでも が得られる場合はnil、次のコードを使用できます。

NSString *initVal=[NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] valueForKey:@"init_val"]];

また

NSString *initVal=[NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"init_val"]];

上記のリンクでは、私の答えが見つかり、そこにあるコードの「init_val」をキーとして「ユーザー名」と「パスワード」に置き換えます

これがお役に立てば幸いです。

于 2012-09-06T11:02:16.883 に答える