2014-07-05 38 views
0

所以我在我正在學習的書上有這塊代碼。這個獨立的{}實際上做了什麼?獨立大括號在Objective-C中做了什麼?

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

是從

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

它假設是'self = [super init ...];如果(自己){...}' –

回答

2

此不同它只是範圍,有在2塊你貼的代碼沒有什麼區別,但是你可以聲明大括號和它範圍內的短暫變化只是那幾行代碼。

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

第一個x變量超出了捲曲結束後的範圍,因此該變量將被清除。這不是一個常用的功能,但可以用於範圍某些變量。你可以把它想象成一個if或while塊,沒有規定輸入,只會運行一次。

1

Kevin說了什麼。更確切地說,可以在單個語句可以使用的任何位置使用由{}包圍的一組語句。當你的代碼,例如:

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

你只是在應用該規則的基本結構:

if (<test>) <statement> 

<statement>{ <statement_list> }

同樣與fordo等等。

1

大括號定義了一個局部範圍。它可以簡單地使用代碼的可讀性,或者你也可以用它來限制局部變量的作用域:

For example:- 

    -(void)yourMethod 
    { 
    { 
    NSString *[email protected]; 
    } 
    { 
    NSString *[email protected]; 
    } 
    } 

因此,在上面你可以定義在兩個範圍內的兩個同名的局部變量。這是使用獨立的花括號。