// 修改数据
NSMutableDictionary *dict = [zbManager.myGoodsArray[path.section]mutableCopy];
NSMutableArray *arrayMySec = [dict[@"goods"]mutableCopy];
NSMutableDictionary *dictRow = [arrayMySec[path.row]mutableCopy];
dictRow[@"quantity"] = @(quantityProduct);
// 替换单利中的数据
[arrayMySec replaceObjectAtIndex:path.rowwithObject:dictRow];
dict[@"goods"] = arrayMySec;
[[zbManager.myGoodsArraymutableCopy]replaceObjectAtIndex:path.sectionwithObject:dict];
从后台获取的数据,默认是不可变的,如果要操作的话,需要做适量的改变
不可以在遍历数组和字典的同时,对它们进行修改数组的操作!!!
NSMutableDictionary *dict = arraySectionChange[i];
NSMutableDictionary *dictTB = [NSMutableDictionarydictionaryWithDictionary:dict];
NSMutableArray *arrayAdd = dict[@"goods"];
NSMutableArray *arrayAddTB = [NSMutableArrayarrayWithArray: arrayAdd];
for ( int j = 0; j < arrayAdd.count; j ++) {
NSMutableDictionary *dictChange = [arrayAddobjectAtIndex:j];
NSMutableDictionary *dictTB = [NSMutableDictionarydictionaryWithDictionary:dictChange];
[dictTB setObject:@"1"forKey:@"commit"];//表示编辑
[arrayAddTB replaceObjectAtIndex:j withObject:dictTB];
}
[dictTB setObject:arrayAddTBforKey:@"goods"];
[arraySectionChange replaceObjectAtIndex:iwithObject:dictTB];
// 如何才可以做到遍历的同事又修改呢,方法如下
NSMutableArray *arrayDelete = [NSMutableArray arrayWithArray:arrayGoodsSelected];
// 得到arrayDelete的目的是:用于确定循环次数
for (int k = 0; k < arrayDelete.count; k++) {
NSMutableDictionary *dictdel = [arrayDelete objectAtIndex:k];
if ([dictdel[@"deleteflag"] isEqualToNumber:@(sender.tag)]) {
// 此处操作是操作原来的数组即可
[arrayGoodsSelected removeObject:dictdel];
NSLog(@"kkkkkkkkkk======%d",k);
}
}