gpt4 book ai didi

ios - Objective-C:如果语句仅在第二次尝试后运行(iOS)

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

我创建了一个 if 语句来检查 bool 值是设置为 true 还是 false

-(void) buttonClicked {

if (sortedList) {

// code

sortedList = NO;
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"sorted"];
}

else {

// code

sortedList = YES;
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"sorted"];
}
}

bool 值加载到 viewWillAppear

    sortedList = [[NSUserDefaults standardUserDefaults] boolForKey:@"sorted"];

问题是,当我单击调用 buttonClicked 的按钮时,没有任何反应。当我第二次单击它时,将按预期执行正确的代码(正确运行 ifelse 取决于它的设置方式)。第三次、第四次等点击按钮时,代码按预期执行。但是,当我在显示另一个 View 后返回 View 时,问题再次出现,仅在第一次单击时没有任何操作。

我已经使用日志检查了 viewWillAppear 中是否设置了 bool,但它似乎设置正确(我希望它保持的值)。

有谁知道我在这里遗漏了什么?

编辑:buttonClicked 方法调用如下

[listButton addTarget:self action:@selector(buttonClicked) forControlEvents:UIControlEventTouchUpInside];

编辑 2 - 修复:我已将 if 条件更改为 (!sortedList) 并在两个语句中切换了 bool 的分配,如下面建议的@Claudio Redi。这为我修复了它。

最佳答案

你需要打电话

[[NSUserDefaults standardUserDefaults] synchronize];

在使用

存储值后保留值
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"sorted"];

关于ios - Objective-C:如果语句仅在第二次尝试后运行(iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30643993/

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