使用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];
         }
      }
  }

你可能感兴趣的:(使用for..in..遍历可变数组的错误:was mutated while being enumerated”)