iOS数组和字典的使用----大坑

// 修改数据

    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);

            }

        }











  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值