2011-04-21 3 views
5

私はObjective Cを初めて使用していて、コードで気付いたことがありますが、関数の中に中括弧で囲まれたコードブロックがあることがあります。コードが関数内の中括弧で囲まれているとどうなりますか?

これは何をするのですか?例えば

...

- (BOOL) application: (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions {  

    // Load config, available via macro CONFIG 
    { 
    NSString *path = [[NSBundle mainBundle] pathForResource: @"config" ofType: @"plist"]; 
    NSData *data = [[NSData alloc] initWithContentsOfFile: path]; 
    self.config = [NSPropertyListSerialization propertyListWithData: data 
                  options: NSPropertyListImmutable 
                  format: nil 
                   error: nil]; 
    [data release]; 
    } 

    // snip 

} 

答えて

5

これは、ブロック内で宣言された変数の範囲を制限するだけの方法です。あなたの例のパスでは、データは中括弧の外側には表示されません。括弧内で宣言「スコープ」と呼ばれています

10

...

変数は括弧内に存在します。

は、次のことを想像してみて:

int main(void) 
{ 
    int my_var = 3; 
    { 
    int my_var = 5; 
    printf("my_var=%d\n", my_var); 
    } 

    printf("my_var=%d\n", my_var); 

    exit(0); 
} 

これが印刷されます:

my_var=5 
my_var=3 
+2

良い1 Macmadeを。もう1つ、スコープは客観的なCに特有ではなく、Cにも存在します。 – Krishnabhadra