2011-04-21 26 views
5

Tôi mới vào Objective C và đã nhận thấy trong mã tôi đã đọc rằng đôi khi một khối mã sẽ được gói trong các dấu ngoặc nhọn bên trong một hàm.Điều gì đang xảy ra nếu mã được bọc trong các dấu ngoặc nhọn trong một hàm?

Điều này làm gì?

Ví dụ ...

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

} 

Trả lời

5

Nó chỉ là một cách để giới hạn phạm vi của các biến được khai báo trong khối. Trong đường dẫn ví dụ và dữ liệu của bạn sẽ không hiển thị bên ngoài dấu ngoặc nhọn.

10

Gọi là "phạm vi" ...

Các biến được khai báo bên trong niềng răng chỉ tồn tại bên trong niềng răng.

Hãy tưởng tượng như sau:

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

này sẽ in:

my_var=5 
my_var=3 
+2

Tốt một Macmade. Một điều nữa, phạm vi không cụ thể cho mục tiêu C, nó cũng có mặt trong C. – Krishnabhadra

Các vấn đề liên quan