2012-02-01 4 views
0

NSArrayにオブジェクトを追加し、それらをキーでアクセスできるようにします。現在、私がそれをやっている方法は、キー値ペアの別々のNSDictionaryを作成することです。値は、インデックスを表す整数値で、NSArrayです。これは私にとって特別なステップのようです。キーでオブジェクトの配列/セットにアクセスする

私の理解がNSDictionaryの場合、「値」のみが格納できます。オブジェクトへのポインタは格納できません。

オブジェクトをキーで保存してアクセスできるようにする同等の機能が必要ですか?私はドキュメントを見てきましたが、明らかに何かを見逃していない限り、何の答えも見つからないようです。

+0

実際にオブジェクトを使用できることが分かります。私が前に試したときにオブジェクトで持っていた問題は、オブジェクトを取得してそれをサブビューとして直接ビューに追加しようとしたときでした。ビューにオブジェクトが追加されていません...今夜私のコードをもう一度見てみましょう。 –

+0

ああ、今はかなり愚かな気分です。私のコードにエラーがあり、私はUIViewだったはずだったと思っていた辞書オブジェクトにnilを渡していました。確認するには、オブジェクトを使用することができます*恥ずかしい* –

答えて

1

NSDictionaryは、キーの値のペアを格納することです。 dictioanryを作成した後にキー値のペアを追加する場合は、NSMutableDictionaryクラスを使用します。たとえば、

[dictionaryObject setObject:@"" forKey:@"abc"]; 
0

それは間違っている、あなたはNSDictionaryにオブジェクトを格納することができます。方法を見てくださいdictionaryWithObjects:forKeys:またはdictionaryWithObjectsAndKeys:

+0

私はそれらを見ました。しかし、彼らは仕事をしなかった(私が何かばかげていない限り)。私はUIViewオブジェクトを辞書に追加しようとしていました。もう一度やり直してください... –

+0

コードを投稿してエラーが発生した場合は助かります。あなたは間違いなくそれらのメソッドを持つオブジェクトを追加することができます – wattson12

+0

私の開発者のMAC atmではないIm。上記の答えの1つは、おそらく私が変えることができる/変えられないことが私を台無しにしていると思いました。今夜別の表情をします。 –

1

あなたはNSDictionaryでオブジェクトを格納することができますし、いや、要するにkeys ...

1

を介してアクセスすることができます。

アレイ(NSArray)は、オブジェクトの順序付けられたコレクションオブジェクトへの参照の順序付き集合であるので、単純に言っ。
辞書とは対照的に、順序付けられておらず、値はキーによってアクセスされます。

コレクションの理解はおそらく間違っていますが、値ではなくポインタ(参照)を保存している可能性があります。

参照を配列に格納する必要がある場合は、追加の手順が必要ですが、この場合は辞書の使用を検討する必要があります。オプションは、注文を処理するキーを使用することです。たとえば
:あなたの要求を処理する必要があり、私はココアでの経験がないが、それはNSDictionary(あるいは少なくともNSMutableDictionary)のように思えるのドキュメントを見て

[myArray objectAtIndex:1]; 
0

[myDictionary objectForKey:@"1"]; 

は、同等の可能性(NSArrayを使用しないで)。

0

私はあなたの問題を理解していると思います。あなたのための私の提案は次のように、NSMutableArrayとマクロを使用することです。もちろん

NSMutableArray *array=[[NSMutableArray alloc]init]; 
#define SOME_MACRO 0 
    id someObject; 
    [array insertObject:someObject atIndex:SOME_MACRO]; 
    id getterObject=[array objectAtIndex:SOME_MACRO]; 


ヘッダファイルでマクロを定義します。

+0

ようこそスタックオーバーフロー。 [あなたの記事に署名を使用しないでください](http://stackoverflow.com/faq#signatures)(このソフトウェアは自動的に署名を追加します)。 – Gilles

関連する問題