关于一些常见报错的处理

2018-09-12  本文已影响0人  dequal

1.数据遍历

was mutated while being enumerated.

当程序出现这个提示的时候,是因为你一边遍历数组,又同时修改这个数组里面的内容,导致崩溃.

这里介绍一种解决方案:

NSMutableArray * arrayTemp = xxx;
NSArray * array = [NSArray arrayWithArray: arrayTemp];
for (NSDictionary * dic in array) {
   if (condition){
      [arrayTemp removeObject:dic];
   }
}
这种方法就是在定义一个一模一样的数组,便利数组A然后操作数组B.

这里顺便介绍一种更快接的删除数组里面的内容以及修改数组里面的内容的方法:

    [Array enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

    }];

利用block来操作,block便利比for便利快20%左右,这个的原理是这样的:

找到符合的条件之后,暂停遍历,然后修改数组的内容.

2.

上一篇下一篇

猜你喜欢

热点阅读