The*_*mer 0 cocoa if-statement objective-c
由于某种原因,在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
Run Code Online (Sandbox Code Playgroud)
你一定要阅读变量范围.
这是一个正确的代码:
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);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
432 次 |
最近记录: |