2011-12-23 8 views
1

NSArrayとNSMutableArrayから得られるすべての有用なことを、なぜObjective-Cオブジェクトで「Cスタイル」の配列を使用するのですか?Objective-CのCスタイルの配列

NSString *array[] = {@"dog", @"cat", @"boy"}; 
+0

さらに、このcタグの問題についてのメタ・ディスカッションはありますか?私はcタグを使って、C++やobj-cの質問についてはかなり心配しています。 – u0b34a0f6ae

答えて

5

短く固定された配列の場合、コンパクトで初期化された構文が優れていることがうかがいます。特定のケースでは、NSArrayを使用する場合と比較して、Cスタイルの配列がパフォーマンス上の利点を提供する場合もあります。 NSArrayは多次元配列のサポートを提供していませんが、多次元C配列は簡単です。

もちろん、Cプリミティブ型ではなくNSArrayにオブジェクトを格納できるだけですが、Objective-CオブジェクトでC配列を使用する方法について具体的に尋ねました。

+0

+1。コンパイラは、NSArrayを使用するときには実行できない多くの最適化を適用することができるため、パフォーマンス上のメリットは巨大になる可能性があります。(理論上は)変更可能なカテゴリやメソッドのスウィズルなど、 NSArrayの動作。 – mvds

+0

カウントを得るために、通常のCイディオム 'sizeof(array)/ sizeof(array [0])'を使用できますか? 'sizeof(array)/ sizeof([array class])'を使用できますか? – edelaney05

1

すべての有用なものは価格で提供されます。

NSArrayintsにしてみてください。できません。あなたNSNumberを使用する必要があります。

なぜですか? NSArrayは何をするべきかわからないので、メモリ管理の仕方はわかりません...そしてメモリ管理要件に準拠するのはNSObjectに基づくものだけです。

これは単なる例ですが、他にもたくさんあります。

ボトムラインは、ほとんどの場合、1つの「最良の」回答ではありません。 NSArrayも例外ではありません。