如何阻止指针更新前一个循环的数据?
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];
}
}
我正在使用 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];
}
}