2011-09-15 7 views
0

Objective-Cをコーディングするとき、sthを実行することは許可されていますか? like:Objective-Cのどこにでも{}記号を入れることができますか?

{ 
    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などと互換性がない場合は、私が使用しているブロックである可能性があるため、私のコードがiOS 3.1.3などと互換性がない場合です。 これは主にコードの可読性と折り畳みに使用したいと思います。

+2

「どこでも」を意味すると思います。 _everywhereを置くと、プログラムは次のようになります: '}}}} {{{} {} {} {{} {{} {} {} {{}'。 – paxdiablo

答えて

1

あなたがしているのは、別々のスコープを作成することだけです。最初のスコープ内で宣言されたものは、2番目のスコープでは使用できません。

これは完全に合法的なCです(Objective-Cは単にCの厳密なスーパーセットなので、そこにも問題ありません)。

私はこれまで多くのプロジェクトを行ってきました。しかし、私は自分自身を使用したことはありません。これは、特に関連していないメソッドの一部を分離する方法として見ることができ、コードの品質が悪いことを示すことができます。 !

はまた、これらは、Cブロックは、それに

^{ 
    //code 
} 

のように見え、最も基本的な形だ、「閉鎖」のように、Cブロックではありません。

0

あなたの可読性のように中括弧を完全に使い分けることができます。コンパイラは文句を言わないでしょう:P

1

これは非常に長い間行われてきたCの機能です。これは "複合文"または "ブロック文"と呼ばれていますが、Appleが最近導入した "ブロック"拡張機能とは関係ありません。これは、複数のステートメントをグループ化し、変数のスコープを設定する単なる方法です。

0

はい、可能です。しかし、代わりにこれはメソッドを作成します:

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

もっと読みやすく、明確になります。コードの再利用もありません。

+0

何をお話していますか?中括弧の配置方法をコードの再利用。読みやすさは個人の好みです。 – ARC

+0

いくつかの同一のコード行を持つソースは読めないと思います。これらの論理ブロックが50個ある場合、このコードはどのように見えますか? – beryllium

+0

私は(この例では)すべてのSubviewで全く同じことをするつもりはないので、その方法は理想的ではないでしょう。場合によっては、あなたは正しいかもしれません。 – Ahti

関連する問題