带括号的这种语法仅表示什么?

时间:2012-08-01 13:59:59

标签: objective-c

我很惊讶地发现在一个Objective-c项目中,以下行代码

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

    {
        ... some code
    }

    {
        ... some code
    }

}

内支架代表什么?他们似乎没有任何声明。 感谢

4 个答案:

答案 0 :(得分:5)

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

示例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

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

-(void)blockTestB {
    int j = 25;

    {
        int j = 5;
        NSLog(@"j inside block is: %i", j); // Prints '5'
    }

    NSLog(@"j outside of block is: %i", j); // Prints '25'
}

答案 1 :(得分:3)

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

答案 2 :(得分:3)

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

答案 3 :(得分: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
    }

}

我认为这会对你有所帮助。