如果我在一个块中声明一个变量(见下文),是否有一种方法可以指定它在块外是否可见?如果需要的话?
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 :(得分:4)
您需要在块之外声明变量。代码块确定范围。
答案 1 :(得分:0)
我喜欢单行:
return (turbine_RPM > 0) ? [NSNumber numberWithInt:[sensorNumber:1]] : nil;
正如Jasarien所指出的,你想要在块之外声明变量。或者立即返回NSNumber
第二个例子的问题是如果if语句失败,你将返回一个初始化变量,所以你需要在else语句中返回一些东西。