gpt4 book ai didi

cocoa - NSUserDefaults 和 registerDefault,标准行为?

转载 作者:行者123 更新时间:2023-12-03 17:43:06 26 4
gpt4 key购买 nike

我需要在 NSUserDefault 中存储一个数字参数,该参数必须默认为 1所以我写了这段代码:

NSNumber *one = [NSNumber numberWithInt:100];    
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
one,@"my-param",
nil];

[def registerDefaults:dict];

此参数在 IB 中的复选框上绑定(bind),因此我可以检查它是否设置正确,并且当我启动应用程序时,我会看到状态为“on”的复选框。

另一方面,我必须以编程方式检查这个值,所以......我做了类似的事情:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSInteger my_param = [defaults integerForKey:@"my-param"];

我注意到,由于该值不是由用户设置的,因此该函数返回我设置为默认值的值(在我的情况下为“1”),但令我惊讶的是,我发现如果用户从未设置过该值,它将返回 0 ...你可以理解这很糟糕:P因为现在我无法理解这个“0”是否是通过用户选择获得的,这是非设置值的结果...我如何编写代码来管理这种情况?

最佳答案

要将数值存储在NSUserDefaults中,您可以直接使用如下:

要在 NSUserDefault 中设置整数值,请按如下所示使用:

NSInteger lInteger = 10; 

[[NSUserDefaults standardUserDefaults] setInteger:lInteger forKey:@"integerkey"];
[[NSUserDefaults standardUserDefaults] synchronize];

要在项目中的任何位置使用该 NSInteger 值,请按以下方式使用:

NSInteger lteger = [[NSUserDefaults standardUserDefaults] integerForKey:@"integerkey"];

我不太明白你的问题,但无论如何我认为上面的代码可能对你有帮助。

关于cocoa - NSUserDefaults 和 registerDefault,标准行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6985933/

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