objective-c - 如果代码包含在函数中的花括号中会发生什么?

标签 objective-c

我是 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

}

最佳答案

这就是所谓的“作用域”……

在大括号内声明的变量只存在于大括号内。

想象一下:

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

关于objective-c - 如果代码包含在函数中的花括号中会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5742052/

相关文章:

objective-c - NSInspiration 和 super

ios - 重用 Storyboard View Controller

ios - View 消失时停止循环的最佳方法是什么

iphone - 为什么在对象不是 nil 的情况下我会得到 exc bad access?

ios - 对 X 和 Y 顶点数组进行排序? iOS/Objective-C

ios - 如何在 TextView 中的 NSMutableArray 中追加值?

iphone - 带有 TextField 的 UITableViewCell 并检查输入

iphone - 存储核心数据 X 分钟

ios - 获取给出属性名称的属性类

iphone - 用计数索引对数组进行排序