情况如下:
我有一个关于AFNetworking
的请求,它检索了一个带有NSArray
的JSON
。
我的目标是变异它里面的NSDictionaries
。我已经做了一个数组的mutableCopy
,但我想知道我是否可以很容易地改变所有的内容。我必须手动遍历数组吗?
NSJSONSerialization有选项允许您控制结果数据结构的可变性。只需传递适当的(可能是NSJSONReadingMutableContainers
),就可以了。
不能改变NSDictionary
,因为只有NSMutableDictionary
有setObject:forKey:
方法
所以你应该创建每个字典和空可变数组的mutableCopy
。然后用for
循环填充该数组。你的代码应该是这样的:
- (NSMutableArray *)mutatedArrayFromArray:(NSArray *)array
{
NSMutableArray *resultArray = [NSMutableArray new];
if([array count] > 0)
{
for(int i = 0; i < count; i++)
{
NSMutableDictionary *mutatedItem = [[array objectAtIndex:i] mutableCopy];
[resultArray addObject:mutatedItem];
[mutatedItem release]; // only with ARC disabled
}
}
return [result autorelease]; // if ARC enabled : return result;
}