Can';t通过IOS中的变量设置NSUserDefaults值

Can';t通过IOS中的变量设置NSUserDefaults值,ios,nsuserdefaults,Ios,Nsuserdefaults,在我的iOS应用程序中,当我登录时,我使用如下方式将UserID和loginstatus设置为NSUserDefaults @implementation Login{ NSInteger UserId; NSUserDefaults *preferences; } - (IBAction)LogInClick:(UIButton *)sender { [preferences setInteger:UserId forKey:@"UserId"]; //UserId=40

在我的iOS应用程序中,当我登录时,我使用如下方式将UserID和loginstatus设置为
NSUserDefaults

@implementation Login{
    NSInteger UserId;
    NSUserDefaults *preferences;
}

- (IBAction)LogInClick:(UIButton *)sender {

 [preferences setInteger:UserId forKey:@"UserId"]; //UserId=40;
 [preferences setBool:YES forKey:@"loginstatus"];
 [preferences synchronize];

 NSLog(@"All NSUserDefaults: %@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);

 NSString *uID = [preferences stringForKey:@"UserId"];
 NSLog(@"UserID: %@",uID);
}
但NSUserDefaults中未设置这些值。我试图记录所有NSUserDefaults值和单个UserID值,但所有字段都为空

稍后我使用此代码注销

  - (IBAction)LogOutClick:(UIButton *)sender {
  [[NSUserDefaults standardUserDefaults] setObject:0 forKey:@"UserId"];
  [[NSUserDefaults standardUserDefaults] setObject:NO forKey:@"loginstatus"];

   /* [preferences setInteger:0 forKey:@"UserId"];
    [preferences setBool:NO forKey:@"loginstatus"];
    [preferences synchronize];*/

    NSLog(@"All NSUserDefaults: %@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);
}


首先,当我注销时,它全部设置为零,而现在值没有设置。有人能告诉我问题出在哪里吗

这是因为
NSUserDefaults*首选项只是一个指针。我猜它的值是
nil
。你应该初始化它。例如:

- (IBAction)LogInClick:(UIButton *)sender {
   preferences = [NSUserDefaults standardUserDefaults];

   [preferences setInteger:UserId forKey:@"UserId"]; //UserId=40;
   [preferences setBool:YES forKey:@"loginstatus"];
   [preferences synchronize];
 ...

可能是一个更为合理的初始化代码> >首选项< /> >将是<代码> init >代码>方法,或是您认为适合此目的的其他内容。

这是因为<代码> NSUDER故障*首选项;<代码>只是一个指针。我猜它的值是
nil
。你应该初始化它。例如:

- (IBAction)LogInClick:(UIButton *)sender {
   preferences = [NSUserDefaults standardUserDefaults];

   [preferences setInteger:UserId forKey:@"UserId"]; //UserId=40;
   [preferences setBool:YES forKey:@"loginstatus"];
   [preferences synchronize];
 ...

可能是一个更为合理的初始化代码> >首选项< /> >将是<代码> init >代码>方法,或是您认为适合此目的的其他内容。

这是因为<代码> NSUDER故障*首选项;<代码>只是一个指针。我猜它的值是
nil
。你应该初始化它。例如:

- (IBAction)LogInClick:(UIButton *)sender {
   preferences = [NSUserDefaults standardUserDefaults];

   [preferences setInteger:UserId forKey:@"UserId"]; //UserId=40;
   [preferences setBool:YES forKey:@"loginstatus"];
   [preferences synchronize];
 ...

可能是一个更为合理的初始化代码> >首选项< /> >将是<代码> init >代码>方法,或是您认为适合此目的的其他内容。

这是因为<代码> NSUDER故障*首选项;<代码>只是一个指针。我猜它的值是
nil
。你应该初始化它。例如:

- (IBAction)LogInClick:(UIButton *)sender {
   preferences = [NSUserDefaults standardUserDefaults];

   [preferences setInteger:UserId forKey:@"UserId"]; //UserId=40;
   [preferences setBool:YES forKey:@"loginstatus"];
   [preferences synchronize];
 ...

可能是一个更为合理的初始化代码< >首选项< /> >将是<>代码> init <代码>方法,或者是您认为适合此目的的其他东西。

您还没有得到标准的用户默认引用。改变这个方法

- (IBAction)LogInClick:(UIButton *)sender {

  preferences = [NSUserDefaults standardUserDefaults];

 [preferences setInteger:UserId forKey:@"UserId"]; //UserId=40;
 [preferences setBool:YES forKey:@"loginstatus"];
 [preferences synchronize];

 NSLog(@"All NSUserDefaults: %@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);

 NSString *uID = [preferences stringForKey:@"UserId"];
 NSLog(@"UserID: %@",uID);
}

您尚未获得标准的userdefaults引用。改变这个方法

- (IBAction)LogInClick:(UIButton *)sender {

  preferences = [NSUserDefaults standardUserDefaults];

 [preferences setInteger:UserId forKey:@"UserId"]; //UserId=40;
 [preferences setBool:YES forKey:@"loginstatus"];
 [preferences synchronize];

 NSLog(@"All NSUserDefaults: %@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);

 NSString *uID = [preferences stringForKey:@"UserId"];
 NSLog(@"UserID: %@",uID);
}

您尚未获得标准的userdefaults引用。改变这个方法

- (IBAction)LogInClick:(UIButton *)sender {

  preferences = [NSUserDefaults standardUserDefaults];

 [preferences setInteger:UserId forKey:@"UserId"]; //UserId=40;
 [preferences setBool:YES forKey:@"loginstatus"];
 [preferences synchronize];

 NSLog(@"All NSUserDefaults: %@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);

 NSString *uID = [preferences stringForKey:@"UserId"];
 NSLog(@"UserID: %@",uID);
}

您尚未获得标准的userdefaults引用。改变这个方法

- (IBAction)LogInClick:(UIButton *)sender {

  preferences = [NSUserDefaults standardUserDefaults];

 [preferences setInteger:UserId forKey:@"UserId"]; //UserId=40;
 [preferences setBool:YES forKey:@"loginstatus"];
 [preferences synchronize];

 NSLog(@"All NSUserDefaults: %@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);

 NSString *uID = [preferences stringForKey:@"UserId"];
 NSLog(@"UserID: %@",uID);
}