2011-04-21 22 views
5

Soy nuevo en Objective C y he notado en el código que he leído que a veces un bloque de código estará envuelto en llaves dentro de una función.¿Qué sucede si el código está envuelto en llaves dentro de una función?

¿Qué significa esto?

Por ejemplo ...

- (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 

} 

Respuesta

5

Es sólo una manera de limitar el alcance de las variables declaradas en el bloque. En su ejemplo, la ruta y los datos no serán visibles fuera de las llaves.

10

Eso se llama "alcance" ...

Las variables declaradas dentro de las llaves sólo existe dentro de las llaves.

Imagínese lo siguiente:

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); 
} 

Esto imprimirá:

my_var=5 
my_var=3 
+2

Buena esa Macmade. Una cosa más, el alcance no es específico del objetivo C, también está presente en C. – Krishnabhadra

Cuestiones relacionadas