2011-09-15 14 views
0

編碼Objective-C時,它是否允許做某事。像:我可以在Objective-C的任何地方放置{} -braces?

{ 
    UIView *viewOne = [[UIView alloc] init]; 
    // do stuff with view 
    [self addSubview:viewOne]; 
    [viewOne release]; 
} //View 1 

{ 
    UIView *viewTwo = [[UIView alloc] init]; 
    // do stuff with view 
    [self addSubview:viewTwo]; 
    [viewTwo release]; 
} //View 2 

當我曾經做過這樣的事情,XCode不抱怨,它運行在iOS 4.3.3上。 我的問題是,如果這使得我的代碼與iOS 3.1.3或其他東西不兼容,因爲這看起來像我可能是我正在使用的塊。 我想主要用於代碼可讀性和摺疊。

+2

我認爲你的意思是「任何地方」。如果你把它們放在_everywhere,_你的程序看起來像這樣:'}}}} {{{} {} {} {{} {{} {} {} {{}' – paxdiablo

回答

1

您在那裏做的只是創建單獨的作用域。第一個作用域內聲明的任何內容都不可用於第二個作用域。

這是完全合法的C(因爲Objective-C只是C的一個嚴格超集,所以它也很好)。

我已經看到它在我工作過的很多項目中都完成了。然而,我從來沒有用過它,因爲它可以被看作是一種分離方法的部分方法,這些方法不是特別相關,並且可能是代碼質量差的一個指示 - 不是我說你的代碼很差!

而且這些不是C塊,如在「倒閉潮」,一個C塊的樣子

^{ 
    //code 
} 

是最基本的形式。

0

它完全可以像使用花括號一樣使用可讀性。編譯器不會抱怨:P

1

這是C的一個功能,已經存在了很長一段時間。它被稱爲「複合語句」或「塊語句」,但它與Apple最近推出的「塊」擴展無關。這只是將多個語句分組併爲變量建立範圍的一種方法。

0

是的,這是可能的。但相反,這創建一個方法:

-(void)addView:(UIView*)view{ 
... 
} 

它會更可讀和清晰。也沒有代碼重用。

+0

你在說什麼?代碼重新使用大括號如何放置。可讀性是個人偏好。 – ARC

+0

我認爲有幾個相同的代碼行是不可讀的。如果有50個這樣的邏輯塊,代碼的外觀如何? – beryllium

+0

好,因爲我不可能(在這個例子中)對每個子視圖做同樣的事情,使用這種方法不會很理想。在某些情況下,你可能是對的。 – Ahti

相關問題