gpt4 book ai didi

ios - NSNotFound 不适用于 NSUser 默认值

转载 作者:行者123 更新时间:2023-11-28 21:13:29 24 4
gpt4 key购买 nike

因为我将一个 Integer 值存储到 NSUserDefaults 中,因为它在很多地方都被使用过。第一次它工作正常但是当我关闭我的应用程序并再次打开它时我检查用户是否已经选择了过去 feom NSUserDefaults 存储值中的任何选项但是我失败了

我的情况有些不对

这是我检查 userdefault 中是否存在整数值的代码:

NSInteger selectedBusinessUnit = [[NSUserDefaults standardUserDefaults] integerForKey:@"selectedUnit"];

if ( selectedBusinessUnit != NSNotFound){
//go to direct main screen.
}else {
// load Business unit screen for selection.
}

但即使我正在删除应用程序并重新安装它,它总能找到值(value)。

我选择的值总是0

让我知道我在这里犯了什么愚蠢的错误。

编辑:

[[NSUserDefaults standardUserDefaults] setInteger:sender.tag forKey:@"selectedUnit"];
[[NSUserDefaults standardUserDefaults] synchronize];

THNAKS .

最佳答案

显然有一个误解:NSNotFound 不等于key is missing,它是一个有效的整数值。

保持逻辑的最简单方法是使用 NSNotFound 注册键值对作为默认值。

尽快(applicationDidFinishLaunching 或更早)写入

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *defaultValues = @{@"selectedUnit": @(NSNotFound)};
[defaults registerDefaults:defaultValues];

这意味着 NSNotFound 被认为是默认值,直到它被第一次覆盖。每次应用程序启动时都必须执行这 3 行。如果重新安装该应用程序,则会再次采用默认值。

现在您可以在问题中使用您的逻辑了。

PS:写完不需要同步。该框架会定期执行此操作。

关于ios - NSNotFound 不适用于 NSUser 默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42345007/

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