-1

我有一个 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"]];

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

4

1 回答 1

1

您应该复制数组。

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

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

编辑:

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

[detailsMA addObjectsFromArray:[[NSArray alloc] initWithArray:[detailsDictionary objectForKey:@"detailsMA"] copyItems:YES]];
于 2012-09-21T14:10:30.347 回答