阻止声明变量在外面可见?

时间:2010-04-01 12:43:30

标签: iphone objective-c cocoa-touch

如果我在一个块中声明一个变量(见下文),是否有一种方法可以指定它在块外是否可见?如果需要的话?

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;
非常感谢

加里

2 个答案:

答案 0 :(得分:4)

您需要在块之外声明变量。代码块确定范围。

答案 1 :(得分:0)

我喜欢单行:

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

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