0

辞書の配列に項目を設定したい。以下に「currentCityNode」というインスタンスのNSDictionaryがあります。その辞書には、(とりわけ)配列項目があります。配列アイテムは「TheConnections」と呼ばれます。以下のコードは配列を正常に読み取ります。

 NSArray *theConnectionsArray = [currentCityNode objectForKey:@"TheConnections"];
 (theConnectionsArray now contains the previously loaded values '3','7', and '9')

ここで、この配列の値の1つを設定します。2番目の値を「7」から「5」にします。

いくつかのバリエーションを試しましたが、まだ入手できません。

[currentCityNode addObject:notsurewhattoputhere forKey:@"TheConnections"];
4

2 に答える 2

1

配列と辞書は変更可能である必要があり、このようなものが機能するはずです。ConnectionsArrayがすでに変更可能である場合は、を使用する必要はありませんmutableCopy

NSMutableArray *theConnectionsArray = [[currentCityNode objectForKey:@"TheConnections"] mutableCopy];
[theConnectionsArray replaceObjectAtIndex:1 withObject:@"5"];
[currentCityNode setObject:theConnectionsArray forKey:@"TheConnections"];
于 2012-06-07T01:51:56.933 に答える
1

取得する配列が可変である場合(のインスタンスNSMutableArray):

[[currentCityNode objectForKey:@"TheConnections"] addObject:@"objectToAdd"];

配列が単なるNSArray:の場合

NSArray *array = [currentCityNode objectForKey:@"TheConnections"];
NSMutableArray *mutableArray = [array mutableCopy];
[mutableArray addObject:@"objectToAdd"];
[currentCityNode setObject:[NSArray arrayWithArray:mutableArray] forKey:@"TheConnections"];
[mutableArray release];

基本的に、配列が不変である(したがって、簡単に追加できない)場合は、可変コピーを作成し、そのコピーを「TheConnections」に割り当てる必要があります。

于 2012-06-07T01:53:49.667 に答える