如何使用NSUserDefaults和Xcode中的复选框保存登录数据?

时间:2014-07-03 11:04:25

标签: xcode checkbox nsuserdefaults

您好我正在尝试使用NSUserdefaults和复选框将我的用户名和密码存储在我的应用中。 我的代码是......

在viewdidload中

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:UserText.text  forKey:@"infoString"];
[defaults setObject:PasswdText.text  forKey:@"infoString1"];
[defaults synchronize];
UserText.text=[[NSUserDefaults standardUserDefaults] objectForKey:@"infoString"];

- (IBAction)checkButton:(id)sender {
      if (!checked) {
          [checkBoxButton setImage:[UIImage imageNamed:@"checkbox_ticked.png"] forState:UIControlStateNormal];
          NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
          self.UserText.text=[defaults objectForKey:@"infoString"];
          self.PasswdText.text = [defaults objectForKey:@"infoString1"];
          checked = YES;
      }

      else if (checked) {
          [checkBoxButton setImage:[UIImage imageNamed:@"checkbox_not_ticked.png"] forState:UIControlStateNormal];
          checked = NO;
      }
}

我的结果是,如果我点击复选框意味着我的文本字段被刷新。我犯了错误?  提前谢谢。

1 个答案:

答案 0 :(得分:0)

当用户执行提交操作时,您应该将值保存在NSUserDefaults,就像这样

- (void)submitButtontapped {
    if (checked) {
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        [defaults setObject:UserText.text  forKey:@"infoString"];
        [defaults setObject:PasswdText.text  forKey:@"infoString1"];
        [defaults synchronize];
        UserText.text=[[NSUserDefaults standardUserDefaults] objectForKey:@"infoString"];
    }
    // do the next thing
}

- (IBAction)checkButton:(id)sender {
    if (checked) {
        checked = NO;
        [checkBoxButton setImage:[UIImage imageNamed:@"checkbox_not_ticked.png"] forState:UIControlStateNormal];
    } else {
        checked = YES;
        [checkBoxButton setImage:[UIImage imageNamed:@"checkbox_ticked.png"] forState:UIControlStateNormal];
    }
}
相关问题