2011-12-27 5 views
1

私は以下のコードを使用してユーザー名のパスワードを保存していますが、資格情報は正しく保存されますが、アプリケーションを再度実行するとテキストフィールドに資格情報が表示されます。チェックボックスをオンにしてチェックボックスをオフにしてください)。 私の質問は次のとおりです: 1.チェックボックスがオンまたはオフの場合、チェックボックスの状態を保存するにはどうすればいいですか? 2.チェックを外すと、nsuserdefaultsからクレデンシャルを削除できます。NSUserDefaults、iPhoneのチェックを外した場合の資格情報の削除

- (IBAction)checkboxButton:(id)sender{ 
if (checkboxSelected == 0){ 
    [checkboxButton setSelected:YES]; 


    NSString *user = [userNameField text]; 

    NSString *passwd = [passwordField text]; 

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

    [defaults setObject:user forKey:@"Username"]; 

    [defaults setObject:passwd forKey:@"Password"]; 

    [defaults synchronize]; 

    NSLog(@"Data Saved"); 

    checkboxSelected = 1; 

} else { 
    [checkboxButton setSelected:NO]; 
    checkboxSelected = 0; 

    //Saving Username Password in file 



} 

}

...ありがとう:)

+0

- (void)setBool:(BOOL)value forKey:(NSString *)defaultName NSUserDefaultsのメソッドは、チェックボックスボタンの状態を保存します。また、使用できる資格情報を削除するには NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; [defaults removeObjectForKey:@ "Password"] – Ali3n

答えて

4

さてあなたはNSUserDefaultsでチェックボックスの状態を保存することができます。

以下の手順をお読みください。

BOOL isChecked = [[NSUserDefaults standardUserDefaults] boolForKey:@"loginCheckBox"]; 

設定されていない場合は、NO(false)が返されます。

[[NSUserDefaults standardUserDefaults] setBool:checkboxButton.selected forKey:@"loginCheckBox"]; 

NSUserDefaultsから値を削除するにはちょうどnilにプロパティを設定します:

[defaults setObject:nil forKey:@"Username"]; 
[defaults setObject:nil forKey:@"Password"]; 

また、私は強く、パスワードを保存するためにあなたをアドバイスすることができます状態を設定するには キーチェーン。 NSUserDefaultsに保存されているすべてのデータがプレーンテキストで保存されているためです。

SSKeyChainに簡単にアクセスして、簡単にキーチェーンAPIにアクセスできます。チェックマークの状態を保存するための

+0

キーチェーンのチュートリアル/例のリンクを教えてください。 – AppDeveloper

+0

私の投稿を編集し、キーチェーンにアクセスするためのObjective-Cクラスを追加しました。 – rckoenes

+0

ありがとう@rckoenes – AppDeveloper

0

あなたが保存する必要がある変数を維持し、NSUserDefaultsから値を除去するためのチェックマークと
の最後の状態を設定するために再度読み込む必要があります:あなたが使用することができます:あなたが使用することができます removeObjectForKey方法

関連する問題