比较字符串与 isEqual 不是 运行 完整功能 iOS

comparing strings with isEqual isn't running the full function iOS

我有一个恼人的问题,我正试图解决这个问题,但它并没有发生,所以要么我遗漏了一些愚蠢的东西,要么我做错了。

基本上我喜欢检查一个字符串,如果是,则加载空白字符串,如果是其他任何内容,则加载真正的字符串。

这是我的代码。

 NSString* q1ynu = [defaults objectForKey:@"1aq1ynu"];
if ([q1ynu isEqualToString:@"No"]){
    NSString *q1text = @" ";
    NSString *q1lmh = @" ";
}else{
    NSString* q1lmh = [defaults objectForKey:@"1aq1lmh"];
    NSString* q1text = [defaults objectForKey:@"1aq1"];
}

我将 NSString *q1text = @" "; 放在实现之后和 viewDidLoad 之前,但它确实抱怨未使用的变量。

它之前加载了所有 3 个答案,而不管是否检查,但现在在加载第一个答案后加载了否,或者是,没有别的?

我是不是遗漏了什么,或者这只是不应该工作?如果没有,那么什么会起作用,因为我不知所措?

谢谢大家

BOOL q1ynu = [[defaults objectForKey:@"1aq1ynu"] isEqualToString:@"No"];
NSString *q1text = q1ynu ? @" " : [defaults objectForKey:@"1aq1"];
NSString *q1lmh = q1ynu ? @" " : [defaults objectForKey:@"1aq1lmh"];

您在 if 语句中声明变量,它们将不存在于它之外。你需要更多这样的东西:

NSString* q1ynu = [defaults objectForKey:@"1aq1ynu"];
NSString *q1text = @" ";
NSString *q1lmh = @" ";
if (![q1ynu isEqualToString:@"No"]){
    q1lmh = [defaults objectForKey:@"1aq1lmh"];
    q1text = [defaults objectForKey:@"1aq1"];
}

// Now you can do something with q1lmh and q1text...

请注意,这仍然是一个非常难看的代码:)