6

私は Objective-C にかなり慣れていないので、タプルのコレクションを管理する最善の方法は何かと考えていました。CI では、2D 配列または構造体を使用します。

これらのタプルを含むオブジェクトを作成する必要がありますか? リストをソートするだけではやり過ぎのように思えますか、それともオブジェクトの初期化によって生成される実際の余分な負荷はありませんか?

4

3 に答える 3

12

オブジェクトの生成には確かにいくらかのオーバーヘッドがあります。オブジェクトの数が少ない場合でも、ObjCデータ構造を使用するのが適切です。タプルが多数ある場合は、構造体のC配列で管理します。Objective-Cは実際には単なるCであることを忘れないでください。Objective-CでC構造を使用することは適切であり、一般的です(ある程度まで、そのポイントがどこにあるかを学ぶことは、優れたObjective-C開発者になるための主要なマイルストーンを表します)。

通常、この種のデータ構造の場合、コレクション全体を管理する単一のObjective-Cオブジェクトを作成する可能性があります。したがって、外部の呼び出し元にはObjective-Cインターフェイスが表示されますが、内部データはより効率的なC構造体に格納されます。

多くのタプルにすばやくアクセスするのが一般的である場合、私のコレクションオブジェクトはおそらく。に似た「get」メソッドを提供し[NSArray getObjects:range:]ます。「get」で始まるObjCメソッドは、最初のパラメーターがメソッドによって上書きされるポインターであることを示します。これは通常、ObjCオブジェクトによって管理されるものへの高性能Cのようなアクセスに使用されます。

この種のデータ構造は、ObjC開発者がObjCの優雅さと保守性をCのパフォーマンスとシンプルさと融合させる方法とまったく同じです。

于 2009-07-21T14:32:12.427 に答える
1

NSArray オブジェクトの NSArray、または NSDictionary オブジェクトの NSArray で解決する必要があると思います。いつでも独自のクラスを作成することも、C で行うように作成することもできます。

于 2009-07-21T11:42:55.837 に答える