私のアプリでデータを整理する最良の方法を決定しています。私は、NSArray
とNSDictionary
を使用してデータ構成のためのいくつかの異なるスタイルのメモリと処理要件に関心を持つ必要があるかどうかを判断しようとしています。多次元データオブジェクト
は、この例を考えてみましょう:
あなたは一人一人に関連する個々の人と情報の順序付きリストを持っています。ここでは関係のない任意の理由で発注されます。
リストは、注文された通りNSArray
です。
- この配列にはNSDictionariesを入力します。各辞書の中には、その1人の個人に関する情報があります。 I. 「名前」、「住所」、「電子メール」などのキーを入力します。
- NSArrayには、
NSString
(キーの配列)という一意の識別子のリストのみが含まれています。次に、 "電子メールアドレス"用の辞書、 "名前"用の辞書など、各情報項目ごとにNSDictionaryを分けています。また、それぞれの辞書には固有の識別子が辞書のキーです。
これらのいずれよりも「優雅」なソリューションはありますか?また、アプリの実行時の要求に対して、他のものより優れていますか?
私はあなたのような単純なことを行うことができます多次元配列を作成することが本当の簡単で直感的であるPHPの背景から来る:Objective Cの中のベストプラクティスを考え出す
echo "The second person's name is ".$person[2][name];
ビットとなっています私のために挑戦する。
あなたは数百人の人がいるかもしれないし、注文する必要があるので、この方法では 'Person'オブジェクトの' NSArray'をまだ持っています。辞書の配列に対してこれを行うメモリオーバーヘッドに違いがあるのだろうか? – johnbakers
配列に含まれるオブジェクトへのポインタのみが配列に格納されます。これらのオブジェクト自体のサイズは配列に影響しません。 – jtbandes
合成された各プロパティに対して '(retain)'を選択しても、Personオブジェクトに追加された元のオブジェクトを解放した場合、メモリフットプリントは同じになりますか?たとえば、 'person.name = aString; [aString release];'? – johnbakers