由于某种原因,if条件中声明的变量得到的是一个未使用的变量,而稍后要使用的变量得到了未声明的变量。为什么会发生这种情况以及解决方法是什么?
NSString *name = [NSString stringWithFormat:@"Josh"];
if ([name isEqualToString:@"Josh"])
{
NSString *greeting = [NSString stringWithFormat:@"Hello Josh"]; //Warning: Unused variable 'greeting'
}
else
{
NSString *greeting = [NSString stringWithFormat:@"Hello %@", name]; //Warning: Unused variable 'greeting'
}
NSLog (@"%@", greeting); //Error: 'greeting' undeclared
最佳答案
您绝对应该阅读 variables scope .
这是一个正确的代码:
NSString *name = [NSString stringWithFormat:@"Josh"];
NSString *greeting = nil;
if ([name isEqualToString:@"Josh"])
{
greeting = [NSString stringWithFormat:@"Hello Josh"];
}
else
{
greeting = [NSString stringWithFormat:@"Hello %@", name];
}
NSLog (@"%@", greeting);
关于objective-c - "if"条件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4859205/