NSMutableArray发生了变化

时间:2012-09-21 14:06:50

标签: ios

我有一个NSMutableArray(detailsMA)有100个字符串,如@“True”。 我将该数组存储在已经分配的NSMutableDictionary中。

            NSArray *array1 = [[NSArray alloc] initWithArray:detailsMA];
            [detailsDictionary setObject: array1 forKey:@"detailsMA"];

现在我更改了detailsMA的值,比如将字符串替换为@“False”,之后检索原始数组值,

            [detailsMA removeAllObjects];
            [detailsMA addObjectsFromArray:[detailsDictionary objectForKey:@"detailsMA"]];

这里有修改后的值,而不是原始值。 我需要原始价值。 请帮我。

1 个答案:

答案 0 :(得分:1)

你应该复制数组。

NSArray *array1 = [[NSArray alloc] initWithArray:detailsMA copyItems:YES];

不要忘记在要复制的对象的类中实现NSCopying协议

编辑:

再次添加对象时,请在添加前进行复制。

[detailsMA addObjectsFromArray:[[NSArray alloc] initWithArray:[detailsDictionary objectForKey:@"detailsMA"] copyItems:YES]];