Objective c 这个只有括号的语法是什么意思?

Objective c 这个只有括号的语法是什么意思?,objective-c,Objective C,在objective-c项目中,我惊讶地看到以下行代码 - (void)methodName { ... some code... { ... some code } { ... some code } } 内括号代表什么?它们之前似乎没有任何声明。 谢谢他们创建了一个块范围。这些块内声明的变量在块外将不可用。括号将创建一个新范围。在作用域内定义的变量在作用域结束后将不会持续存在。我个人用它来分离一些逻辑,使事情更容

在objective-c项目中,我惊讶地看到以下行代码

- (void)methodName
{
    ... some code...

    {
        ... some code
    }

    {
        ... some code
    }

}
内括号代表什么?它们之前似乎没有任何声明。
谢谢

他们创建了一个块范围。这些块内声明的变量在块外将不可用。

括号将创建一个新范围。在作用域内定义的变量在作用域结束后将不会持续存在。我个人用它来分离一些逻辑,使事情更容易阅读

示例1

此示例演示了无法访问在更窄定义范围内实例化的变量

-(void)blockTestA {
    int j = 25;

    {
        int k = 5;

        // You can access both variables 'j' and 'k' inside this block.
    }

    // You can only access the variable 'j' here.
}
示例2

这个例子演示了创建一个新的块作用域如何允许我们使用相同名称的不同变量。您可以阅读有关范围的更多信息


内括号限制了其中声明的变量的范围

- (void)methodName
{
    ... some code...

    {
      int i;//the scope of i is within this block only
        ... some code
    }

    {
       int i;//the scope of i is within this block only
       ... some code
    }

}

我想这会对您有所帮助。

很高兴知道,因为我一直在想这些代码——但使用这些代码的惯例是什么——是否有任何情况下确实需要它们,它们在objective-c中是常见的还是回归到c?使用这些代码没有惯例。这有点像
开关。。。案例
如果。。。else
语句。他们的工作方式相当相似,所以这通常只是个人喜好的问题。在一些非常正常的情况下,它们是必要的,你可能不会这样想。(示例:定义新选择器的实现、定义块、
try…catch
块)几乎所有其他用途都是半可选的(即,您可以使用或不使用
for
循环来实现
,但仅当直接包含的逻辑是单行时)。C支持创建新的块范围。
- (void)methodName
{
    ... some code...

    {
      int i;//the scope of i is within this block only
        ... some code
    }

    {
       int i;//the scope of i is within this block only
       ... some code
    }

}