Что происходит, если код заключен в фигурные скобки внутри функции? - PullRequest
5 голосов
/ 21 апреля 2011

Я новичок в 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

}

Ответы [ 2 ]

10 голосов
/ 21 апреля 2011

Это называется «область действия» ...

Переменные, объявленные внутри фигурных скобок, существуют только внутри фигурных скобок.

Представьте себе следующее:

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
5 голосов
/ 21 апреля 2011

Это просто способ ограничения области видимости переменных, объявленных в блоке. В вашем примере путь и данные не будут видны вне фигурных скобок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...