objective-c - "if"条件不起作用

标签 objective-c cocoa if-statement

由于某种原因,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/

相关文章:

ios - 生成大型 PDF 时如何降低内存爬升

iphone - objective-c - 横向 UIView 自动调整大小

cocoa - 如何让 NSStackView 截断最右边的 NSTextField

batch-file - 批处理 : The syntax of the command is incorrect

objective-c - NSOpenPanel 和检测到泄漏的观察者

objective-c - 按对象值对NSMutableArray排序

objective-c - NSString 是整数吗?

objective-c - 使用分布式对象的进程之间的通信

C++ 错误 'else' 没有前一个 'if'

javascript - If 语句(未单击按钮)