3

を使用してデータを追加するインデックスを手動で制御する方法はありますNSMutableArrayか? たとえば、PHP では次のことができます。

$foo[2] = "fafa";
$foo[8] = "haha";

インデックス作成の手動割り当ては で実行できますNSMutableArrayか?

4

4 に答える 4

4

NSMutableArraysはスパースではありません。オブジェクトが格納されていない場所にギャップを設けることはできません。(Eduが述べたように)を使用して、0から長さ-1までの任意のインデックスでオブジェクトを挿入することがinsertObject:atIndex:できますが、それ以外は(を使用してaddObject:)オブジェクトを追加することしかできません。

オブジェクトを任意の整数に関連付ける必要がある場合は、NSMapTable-を使用できます。機能インターフェイスでは整数キーを使用できます。または、単にキーを使用してNSMutableDictionaryNSNumberdrewagが提案したように)。

参照:Cocoaでスパース配列を実行する方法

于 2012-04-28T19:02:08.473 に答える
2
于 2012-04-29T00:21:59.413 に答える
2

いいえ、それは不可能です。代わりに NSMutableDictionary を使用することをお勧めします。NSNumbers をインデックスとして使用できます。

于 2012-04-28T18:48:49.460 に答える
1
- (void)insertObject:(id)anObject atIndex:(NSUInteger)index

重要インデックスが配列内の要素の数より大きい場合、NSRangeExceptionを発生させます。

于 2012-04-28T18:50:56.487 に答える