gpt4 book ai didi

ios - 无法通过 IOS 中的变量设置 NSUserDefaults 值

转载 作者:行者123 更新时间:2023-11-28 19:56:55 27 4
gpt4 key购买 nike

在我的 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 *preferences; 只是一个指针。我推测它的值为 nil。你应该初始化它。例如:

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

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

初始化 preferences 的更合乎逻辑的地方可能是 init 方法,或者您认为适合此目的的其他方法。

关于ios - 无法通过 IOS 中的变量设置 NSUserDefaults 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25988544/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com