使用for..in..遍历可变数组的错误:was mutated while being enumerated”

/**
使用for..in..快速枚举可变数组,然后再枚举过程中增删改可变数组中的内容时,
会报错“was mutated while being enumerated”
解决办法就是下面这样,复制一个同样的临时数组,快速枚举临时数组,
然后再枚举临时数组的时候,增删改原始数组中的内容,这样就不会崩溃报错了
*/

NSMutableArray *tmpMutableArray = [self.subDeviceArray mutableCopy];
 if (tmpMutableArray.count > 0) {
     for (GizWifiDevice *device in tmpMutableArray) {
         if (device.sharingRole == 1 || device.sharingRole == 2) {
             [self.subDeviceArray removeObject:device];
         }
      }
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。