3

我很惊讶在一个objective-c项目中看到以下行代码

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

    {
        ... some code
    }

    {
        ... some code
    }

}

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

4

4 回答 4

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

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

-(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'
}
于 2012-08-01T14:01:24.060 回答
3

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

于 2012-08-01T14:00:56.857 回答
3

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

于 2012-08-01T14:01:26.720 回答
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
    }

}

我想这会对你有所帮助。

于 2012-08-01T14:06:23.373 回答