我想在字典中的数组中设置项目。 我在下面有一个NSDictionary,一个名为“currentCityNode”的实例。在该Dictionary中是一个数组项(除其他外)。数组项称为“TheConnections” 下面的代码成功读取了数组。
NSArray *theConnectionsArray = [currentCityNode objectForKey:@"TheConnections"];
(theConnectionsArray now contains the previously loaded values '3','7', and '9')
现在我想设置此数组中的一个值。将第二个值'7'设为'5'。
我尝试了一些变体,但还没能搞定。
[currentCityNode addObject:notsurewhattoputhere forKey:@"TheConnections"];
答案 0 :(得分:1)
你的数组和字典必须是可变的,这样的东西应该可行。如果theConnectionsArray已经是可变的,那么你就不必使用mutableCopy
。
NSMutableArray *theConnectionsArray = [[currentCityNode objectForKey:@"TheConnections"] mutableCopy];
[theConnectionsArray replaceObjectAtIndex:1 withObject:@"5"];
[currentCityNode setObject:theConnectionsArray forKey:@"TheConnections"];
答案 1 :(得分: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”。