2010-04-01 72 views
0

如果我在一个块内声明了一个变量(见下文),有没有一种方法可以指定它在块之外是否可见?块声明变量可见外?

if(turbine_RPM > 0) { 
    int intResult = [sensorNumber:1]; 
    NSNumber *result = [NSNumber numberWithInt:intResult]; 
} 
return result; 

或者只是声明块范围之外的方法吗?

NSNumber *result = nil; 
if(turbine_RPM > 0) { 
    int intResult = [sensorNumber:1]; 
    result = [NSNumber numberWithInt:intResult]; 
} 
return result; 

千恩万谢

加里

+0

我不这么认为,但在这种情况下,您可以在块内返回而不使用变量。 – 2010-04-01 12:45:59

+0

谢谢,我只是好奇,如果我错过了一些东西。它只是快速示例代码,但我将其赋值为零,以防万一它错过了if。 – fuzzygoat 2010-04-01 14:07:57

回答

4

您需要声明块外面的变量。代码块决定范围。

0

我爱一行代码:

return (turbine_RPM > 0) ? [NSNumber numberWithInt:[sensorNumber:1]] : nil; 

正如Jasarien指出,要声明块外的变量。或者立即返回NSNumber
第二个例子的问题是如果if语句失败,你将返回一个初始化变量,所以你需要在else语句中返回一些东西。