gpt4 book ai didi

objective-c - if 语句在其条件变量设置之前执行

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

我有一个 if 语句,它的条件通过 NSUserDefaults 传递给这个实现文件,如下所示。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *code = [defaults objectForKey:@"codeKey"];
selectedCodeLocal = code;

在这段检索字符串变量的代码之后,我有一个 if 语句:

if (selectedCodeLocal == @"1")
textView.text = "@blah blah blah";
else
textview.text = "@abcdefghijklmnop";

当我构建并运行时,似乎传递了变量,但直到 if 语句执行后才传递。

我在这段代码周围放置了 NSLog,它返回我的 selectedCodeLocal 字符串变量,并且变量的值总是落后一步。 (例如,如果我先将其作为 4 传递,然后将其作为 1 传递,它将首先作为 1 返回到日志中,然后作为 4,然后作为 1)如果我对此感到困惑,抱歉。

更新:

- (void)viewDidLoad {

[super viewDidLoad];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults synchronize];
selectedCodeLocal = [defaults objectForKey:@"codeKey"];
NSLog(@"set: %@",selectedCodeLocal);

self.navigationItem.title = selectedCodeLocal;

[textView setClipsToBounds:NO];
[textView setEditable:NO];
[textView setFrame:CGRectMake(20, 100, 50, 50)];

if ([selectedCodeLocal isEqualToString:@"100"])
textView.text = @"abc";
else
textView.text = @"xyz";

}

NSLog 仍然显示 selectedCodeLocal 的旧值。

更新:这是设置 key 的地方。 (在前面的 View 中)

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

//Get the selected code

NSString *selectedCode = nil;

if(searching)
selectedCode = [copyListOfItems objectAtIndex:indexPath.row];
else {

NSDictionary *dictionary = [listOfItems objectAtIndex:indexPath.section];
NSArray *array = [dictionary objectForKey:@"codesKey"];
selectedCode = [array objectAtIndex:indexPath.row];
}

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:selectedCode forKey:@"codeKey"];
[defaults synchronize];

}

@Firoze Lafeer:这是否回答了您的问题? storyboard

最佳答案

当您更改 NSUserDefaults 中的值时,请进行同步。例如

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"4" forKey:@"codeKey"];
[defaults synchronize];

还有

if (selectedCodeLocal == @"1")

应该是

if (selectedCodeLocal isEqual:@"1")

关于objective-c - if 语句在其条件变量设置之前执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8934918/

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