我有一个令人烦恼的问题,我正试图绕过但它只是没有发生,所以要么我错过了一些愚蠢的事情,要么我做错了。
基本上就像检查一个字符串,如果它是一个否,然后加载空字符串,如果它的其他任何东西然后加载真正的字符串。
这是我的代码。
NSString* q1ynu = [defaults objectForKey:@"1aq1ynu"];
if ([q1ynu isEqualToString:@"No"]){
NSString *q1text = @" ";
NSString *q1lmh = @" ";
}else{
NSString* q1lmh = [defaults objectForKey:@"1aq1lmh"];
NSString* q1text = [defaults objectForKey:@"1aq1"];
}
我在实施之后和 viewDidLoad 之前放置NSString *q1text = @" ";
但它确实抱怨未使用的变量。
无论是否检查,它都加载了所有3个答案,但现在在播放加载后第一个答案为No,或是,没有别的?
我错过了什么或这是不是应该工作?如果不是那么什么会起作用,因为我不知所措?
全部谢谢
答案 0 :(得分:2)
你在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...
请注意,这仍然是令人讨厌的代码:)
答案 1 :(得分:0)
BOOL q1ynu = [[defaults objectForKey:@"1aq1ynu"] isEqualToString:@"No"];
NSString *q1text = q1ynu ? @" " : [defaults objectForKey:@"1aq1"];
NSString *q1lmh = q1ynu ? @" " : [defaults objectForKey:@"1aq1lmh"];