如何阻止指针更新前一个循环的数据?

How to stop a pointer from updating data from a previous loop?

我正在使用 for 循环循环并将数据插入 NSMutableDictionary,然后将该 NSMutableDictionary 插入 NSMutableArray,代码相当简单,如下所示:

for (NSDictionary *selectedOption in selectedOptions) {
     NSString *name = selectedOption[@"name"];
     NSString *value = selectedOption[@"value"];
     [variantRow setObject:name forKey:@"name"];
     [variantRow setObject:value forKey:@"value"];
     [variantInfo addObject:variantRow];
}

我试图解决的问题是 *name 和 *value 总是获取循环的最后一个值,即使对于先前插入 variantInfo NSMutableArray 的字典,我假设我的问题是因为我正在插入指针等,但我不明白我还能怎么做?我需要插入值并让以后的插入不影响以前的插入。

我希望描述有意义,因为它不容易解释。

您在每次迭代中修改相同的 NSDictionary 对象引用 (variantRow) 并将其附加到数组 variantInfo。您需要创建一个新的 NSDictionary 对象:

for (NSDictionary *selectedOption in selectedOptions) {
     NSString *name = selectedOption[@"name"];
     NSString *value = selectedOption[@"value"];
     if(name && value) {
        NSDictionary* newVariantRow = @{"name": name, @"value":value};
        [variantInfo addObject: newVariantRow];
     } 
}