项目中有个需求,数量为0的卡不能传给服务器,不然开发票会有很多空卡
当时同事犯的错误是 直接在model.cardArray 这个可变数组里面进行循环,一边循环,一边匹配到里面model数量为0的元素,进行删除操作,
反馈到这里来的时候说原始数组有8个元素,才循环了4次就结束了,导致里面还有3个数量为空的model;开始怀疑自己了、、、、
//这里需要弄一个不可变的数组 然后循环,保证每一个都去匹配下
NSArray * array = [NSArray arrayWithArray: model.cardArray];
for ( YFEnterprisePurchaseCardModel *collectionModel in array) {
if (collectionModel.quantity<=0) {
[model.cardArray removeObject:collectionModel];
}
}
本文介绍了一个在遍历并删除数组元素时遇到的问题及解决方案。原问题是:当尝试从可变数组中移除所有数量为0的元素时,由于直接在原数组上操作而导致循环次数不足,使得部分符合条件的元素未能被正确移除。文中提供了一种通过创建不可变副本进行安全遍历的方法。
263





