Objective-C中独立花括号的作用是什么

时间:2014-07-05 03:19:53

标签: ios objective-c brackets

所以我在我正在学习的书上有这段代码。这个独立的{}实际上做了什么?

self = [super initWithImageNamed:@"character.png"];
{
    self.name = playerName;
    self.zPosition = 10;
}

这与

不同
self = [super initWithImageNamed:@"character.png"];
self.name = playerName;
self.zPosition = 10;

3 个答案:

答案 0 :(得分:2)

这只是作用域,你发布的2段代码没有区别,但是你可以在花括号中声明一个短暂的变量,并将其范围扩展到那几行代码。

{
    int x = 5;
}
NSLog("%d", x);  //error
int x = 10;      //legal

第一个x变量在卷曲结束后超出范围,因此该变量将被清除。它不是常用的功能,但可以用于确定某些变量的范围。你可以把它想象成一个if或while块,没有任何规定可以运行一次。

答案 1 :(得分:1)

凯文说。更确切地说,{}包围的一组语句可以在单个语句的任何位置使用。编码时,例如:

if (x == y) {
    a = b;
}

您只是将此规则应用于以下基本结构:

if (<test>) <statement>

{ <statement_list> }替换为<statement>

同样使用fordo等等。

答案 2 :(得分:1)

大括号定义了一个局部范围。它可以简单地用于代码可读性,或者也可以用它来限制局部变量的范围:

   For example:-

    -(void)yourMethod
   {
   {
  NSString  *str=@test;
   }
   {
   NSString  *str=@testing;
   }
  }

所以在上面你可以在两个范围内定义两个同名的局部变量。这是使用独立的花括号。