NSArrayとNSMutableArrayから得られるすべての有用なことを、なぜObjective-Cオブジェクトで「Cスタイル」の配列を使用するのですか?Objective-CのCスタイルの配列
NSString *array[] = {@"dog", @"cat", @"boy"};
NSArrayとNSMutableArrayから得られるすべての有用なことを、なぜObjective-Cオブジェクトで「Cスタイル」の配列を使用するのですか?Objective-CのCスタイルの配列
NSString *array[] = {@"dog", @"cat", @"boy"};
短く固定された配列の場合、コンパクトで初期化された構文が優れていることがうかがいます。特定のケースでは、NSArrayを使用する場合と比較して、Cスタイルの配列がパフォーマンス上の利点を提供する場合もあります。 NSArrayは多次元配列のサポートを提供していませんが、多次元C配列は簡単です。
もちろん、Cプリミティブ型ではなくNSArrayにオブジェクトを格納できるだけですが、Objective-CオブジェクトでC配列を使用する方法について具体的に尋ねました。
+1。コンパイラは、NSArrayを使用するときには実行できない多くの最適化を適用することができるため、パフォーマンス上のメリットは巨大になる可能性があります。(理論上は)変更可能なカテゴリやメソッドのスウィズルなど、 NSArrayの動作。 – mvds
カウントを得るために、通常のCイディオム 'sizeof(array)/ sizeof(array [0])'を使用できますか? 'sizeof(array)/ sizeof([array class])'を使用できますか? – edelaney05
すべての有用なものは価格で提供されます。
NSArray
をints
にしてみてください。できません。あなたNSNumber
を使用する必要があります。
なぜですか? NSArray
は何をするべきかわからないので、メモリ管理の仕方はわかりません...そしてメモリ管理要件に準拠するのはNSObject
に基づくものだけです。
これは単なる例ですが、他にもたくさんあります。
ボトムラインは、ほとんどの場合、1つの「最良の」回答ではありません。 NSArray
も例外ではありません。
さらに、このcタグの問題についてのメタ・ディスカッションはありますか?私はcタグを使って、C++やobj-cの質問についてはかなり心配しています。 – u0b34a0f6ae