我使用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总是得到循环的最后一个值,即使先前插入的dicts到variantInfo NSMutableArray,我假设我的问题是因为我插入指针等,但我不明白我怎么办呢?我需要插入值,并且将来的插入不会影响以前的插入。
我希望描述有意义,因为它不容易解释。
答案 0 :(得分:0)
您正在每次迭代中修改相同的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];
}
}