Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 块声明的变量是否在外部可见?_Iphone_Objective C_Cocoa Touch - Fatal编程技术网

Iphone 块声明的变量是否在外部可见?

Iphone 块声明的变量是否在外部可见?,iphone,objective-c,cocoa-touch,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

如果我在一个块内声明一个变量(见下文),有没有办法指定它在块外可见(如果需要)

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


gary

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

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

我喜欢一行:

return (turbine_RPM > 0) ? [NSNumber numberWithInt:[sensorNumber:1]] : nil;
正如Jasarien所指出的,您希望在块之外声明变量。或者立即返回
NSNumber

第二个示例的问题是,如果if语句失败,您将返回一个初始化的变量,因此您需要在else语句中返回一些内容。

我喜欢一行:

return (turbine_RPM > 0) ? [NSNumber numberWithInt:[sensorNumber:1]] : nil;
正如Jasarien所指出的,您希望在块之外声明变量。或者立即返回
NSNumber


第二个示例的问题是,如果if语句失败,您将返回一个初始化的变量,因此您需要在else语句中返回一些内容。

我不这样认为,但在这种情况下,您可以从块内返回,而不必使用变量。谢谢,我只是想知道是否缺少了一些内容。这只是一个快速的示例代码,但我为result指定了nil,以防它遗漏if。我不这么认为,但在这种情况下,您可以从块内返回,而不使用变量。谢谢,我只是好奇是否遗漏了什么。这只是一个快速的示例代码,但我为结果指定了nil,以防它错过if。