objective-c - 不能 "Copy"一个可变数组到另一个

标签 objective-c ios xcode cocoa-touch nsmutablearray

在我的 iPhone 应用中。

我正在将一个可变数组(带字典)复制到另一个。

好像是

resultsToDisplay = [[[NSMutableArray alloc]initWithArray:resultsPassed]mutableCopy];


  2012-06-21 17:07:07.441 AllinoneCalc[3344:f803] Results  To Display (
        {
        lbl = "Monthly EMI";
        result = "75.51";
    }
)
2012-06-21 17:07:08.224 AllinoneCalc[3344:f803] Results Passed (
        {
        lbl = "Monthly EMI";
        result = "75.51";
    }
)

那我正在修改其中一个。

[[resultsToDisplay objectAtIndex:i] setValue:[NSString stringWithFormat:@"%.2f",[[[resultsPassed objectAtIndex:i] valueForKey:@"result"] floatValue]] forKey:@"result"];

但是发生了什么,两者都被编辑了。

2012-06-21 17:07:08.703 AllinoneCalc[3344:f803] Results Passed (
        {
        lbl = "Monthly EMI";
        result = "75.00";
    }
)
2012-06-21 17:07:08.705 AllinoneCalc[3344:f803] Results  To Display (
        {
        lbl = "Monthly EMI";
        result = "75.00";
    }
)

他们指的是同一个副本。

如何解决这个问题。我只想修改一个数组。

最佳答案

您只是在复制对象指针数组,而不是对象本身。参见 this article关于深度复制。

关于objective-c - 不能 "Copy"一个可变数组到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11137444/

相关文章:

ios - 以编程方式获取可用于唯一标识iOS设备的信息

ios - 从 iOS 模拟器上的应用程序崩溃中退出

ios - 使用 Nib 和 UIView 类加载 UIView

objective-c - 将委托(delegate)分配给我的 PieChartView 时发送到实例的无法识别的选择器

objective-c - NSNumberFormatter iOS 大双值

ios - 自定义委托(delegate)在调用方法时变为nil

ios - 当我尝试存档时,无法创建 ipa 文件

ios - UITextField 最小字体大小

ios - 第二次API调用后应用崩溃(快速)

ios - NSString 数组中的重音字符编码不正确